0Pricing
Swift Academy · Aula

Tipos Result — Result<T, Error>

Represente sucesso ou falha sem lançar erros usando Result . Crie resultados, use switch sobre eles, aplique map/flatMap e faça a ponte de e para throws.

Tipos Result — Result<T, Error> é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 3 de 3. 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 3 aulas no total.

Por que usar Result?

Objetivo: use Result<T, Error> para retornar sucesso ou falha explicitamente — uma ótima opção para retornos de chamada ou APIs que evitam throws.

Criar Result

Crie .success(value) ou .failure(error) em vez de lançar um erro.

enum ParseError: Error { case badInt }
func parseInt(_ s: String) -> Result<Int, Error> {
    if let n = Int(s) { return .success(n) }
    else { return .failure(ParseError.badInt) }
}
print(parseInt("42"))
print(parseInt("nope"))

Usar switch em Result

Trate os resultados com um switch para manter claros os caminhos de sucesso e falha.

let r = parseInt("10")
switch r {
case .success(let n): print("number =", n)
case .failure(let e): print("error:", e)
}

Transformar Results

Transforme o sucesso com map, encadeie operações que produzem Result com flatMap e adapte os erros usando mapError.

let r1 = parseInt("5").map { $0 * 2 }              // Result<Int, Error>
let r2 = parseInt("x").map { $0 * 2 }                    // still .failure
let r3 = parseInt("8").flatMap { n in                    // chain Results
    n % 2 == 0 ? .success(n/2) : .failure(ParseError.badInt)
}
let rErr = parseInt("x").mapError { $0 }                 // transform error type if needed
print(r1, r2, r3, rErr)

De throws para Result

Use Result { try ... } para capturar automaticamente uma chamada que lança erros como um Result.

enum LoadError: Error { case notFound }
func load(text name: String) throws -> String {
    guard name == "ok" else { throw LoadError.notFound }
    return "loaded"
}
// Build a Result from a throwing call:
let res = Result { try load(text: "ok") }     // .success("loaded")
let res2 = Result { try load(text: "missing") } // .failure(LoadError.notFound)
print(res, res2)

De Result para throws

Chame get() para relançar o erro de um Result, fazendo a ponte de volta para o código que lança erros.

let outcome = parseInt("12")
do {
    let value = try outcome.get()   // throws if .failure
    print("value =", value)
} catch {
    print("thrown from get():", error)
}

O significado de Result

Verificação rápida: o que Result<T, Error> representa?

Recapitulação

Recapitulação: crie valores Result, trate-os com switch, transforme-os por meio de map/flatMap/mapError e faça a ponte de e para throws usando o inicializador Result { try ... } e get().

Perguntas Frequentes

A aula “Tipos Result — Result<T, Error>” é grátis?

Sim — o texto completo de “Tipos Result — Result<T, Error>” é 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 3 aulas no total.

O que vou aprender em “Tipos Result — Result<T, Error>”?

Represente sucesso ou falha sem lançar erros usando Result . Crie resultados, use switch sobre eles, aplique map/flatMap e faça a ponte de e para throws. 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 3 de 3.

Quanto tempo leva a aula “Tipos Result — Result<T, Error>”?

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. Encadeamento de optionals e fundamentos do tratamento de erros
  2. do/catch e definição de erros (enums)
  3. Tipos Result — Result
← Voltar para Swift Academy