0Pricing
Swift Academy · Aula

Fundamentos de Result<Success, Failure>

Crie valores Result e faça correspondência de padrões para tratar erros de forma explícita.

Fundamentos de Result<Success, Failure> é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Boas-vindas

`Result` é uma enumeração do Swift com dois casos — `.success` e `.failure` — que oferece tratamento explícito de erros sem a sintaxe de lançamento e captura de erros.

Declarando um resultado

```swift func divide(_ a: Double, by b: Double) -> Result { guard b != 0 else { return .failure(.divisionByZero) } return .success(a / b) } enum DivisionError: Error { case divisionByZero } ```

Consumindo um resultado

```swift switch divide(10, by: 2) { case .success(let value): print("Result: \(value)") case .failure(let err): print("Error: \(err)") } ```

get() — lança em caso de falha

```swift let result = divide(10, by: 0) do { let value = try result.get() // throws DivisionError } catch { print(error) } ```

Armazenando resultados

```swift var cache: [URL: Result] = [:] cache[url] = .success(data) cache[url] = .failure(URLError(.notConnectedToInternet)) ```

Resultados em APIs assíncronas

```swift func fetch(url: URL, completion: @escaping (Result) -> Void) { URLSession.shared.dataTask(with: url) { data, _, error in if let data { completion(.success(data)) } else { completion(.failure(error ?? URLError(.unknown))) } }.resume() } ```

Correspondência de padrões com if case

```swift if case .success(let data) = result { process(data) } if case .failure(let err) = result { handle(err) } ```

Propriedades de sucesso e falha

```swift let r: Result = .success(42) print(r.success) // Optional(42) — non-nil on success print(r.failure) // nil ```

Inicializando a partir de código que lança erros

```swift let result = Result { try JSONDecoder().decode(User.self, from: data) } // .success(user) or .failure(decodingError) ```

Comparando resultados

```swift let a: Result = .success(42) let b: Result = .success(42) // Cannot == directly unless Success/Failure are Equatable ```

Verificação rápida

O que `result.get()` faz quando o resultado é `.failure`?

Recapitulação

Principais conclusões: • `Result` — sucesso e falha explícitos sem lançar erros • `.success(value)` / `.failure(error)` — dois casos • `.get()` lança um erro em caso de falha • `Result { try ... }` faz a ponte com código que lança erros • Útil para armazenar e passar resultados adiados Próximo: map e flatMap em resultados.

Perguntas Frequentes

A aula “Fundamentos de Result<Success, Failure>” é grátis?

Sim — o texto completo de “Fundamentos de Result<Success, Failure>” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Fundamentos de Result<Success, Failure>”?

Crie valores Result e faça correspondência de padrões para tratar erros de forma explícita. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Fundamentos de Result<Success, Failure>”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de Result
  2. map e flatMap em Result
  3. Tipos de erro personalizados com LocalizedError
  4. Integração de Result com async/await
← Voltar para Swift Academy