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
- Encadeamento de optionals e fundamentos do tratamento de erros
- do/catch e definição de erros (enums)
- Tipos Result — Result