Introdução aos optionals: ?, nil, if let, guard let e ??
Conheça os optionals: declare-os com ?, represente valores ausentes com nil e desembrulhe-os usando if let, guard let e ??.
Introdução aos optionals: ?, nil, if let, guard let e ?? é 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.
O que é um opcional?
Os opcionais representam um valor que pode estar presente ou ser nil. Adicione ? a um tipo para torná-lo opcional.
- Trate a ausência explicitamente
- Evita muitos travamentos
Vinculação com if let
Declare com ? e depois use if let para desembrulhar o valor com segurança quando ele estiver presente.
var nickname: String? = nil
print("nickname =", String(describing: nickname))
// Optional binding with if let
let input: String? = "Ada"
if let name = input {
print("Hello, \\(name)")
} else {
print("No name")
}guard let
guard let desembrulha o valor e sai antecipadamente quando encontra nil, mantendo o código simples e legível.
func greet(_ maybeName: String?) {
guard let name = maybeName else {
print("Missing name"); return
}
print("Hi, \\(name)!")
}
greet(nil)
greet("Grace")Coalescência de nil (??)
Use ?? para fornecer um valor padrão quando o opcional for nil.
let provided: String? = nil
let username = provided ?? "Guest"
print("Username:", username)Encadeamento de opcionais
O encadeamento de opcionais (?.) interrompe o encadeamento quando qualquer ligação é nil.
struct Profile { var city: String? }
struct User { var profile: Profile? }
let u1 = User(profile: Profile(city: "Paris"))
let u2 = User(profile: nil)
// Optional chaining safely traverses missing links
print(u1.profile?.city?.uppercased() ?? "No city") // "PARIS"
print(u2.profile?.city ?? "No city") // "No city"Dicas e armadilhas
Dicas:
- Evite
!(desembrulhamento forçado), a menos que tenha certeza absoluta de que o valor não é nil. - Prefira if let ou guard let para manter o código claro.
- Use ?? para fornecer valores padrão seguros.
Comportamento de guard let
Verificação rápida: O que faz guard let?
Revisão
Revisão: Declare opcionais com ?, represente a ausência com nil, desembrulhe valores usando if let ou guard let e forneça valores padrão com ??. Use o encadeamento de opcionais para percorrer valores com segurança.
Perguntas Frequentes
A aula “Introdução aos optionals: ?, nil, if let, guard let e ??” é grátis?
Sim — o texto completo de “Introdução aos optionals: ?, nil, if let, guard let e ??” é 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 “Introdução aos optionals: ?, nil, if let, guard let e ??”?
Conheça os optionals: declare-os com ?, represente valores ausentes com nil e desembrulhe-os usando if let, guard let e ??. 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 “Introdução aos optionals: ?, nil, if let, guard let e ??”?
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
- let versus var, inferência de tipos, literais e tuplas
- Tipos básicos: números, Bool, String e Character
- Introdução aos optionals: ?, nil, if let, guard let e ??