Encadeamento de Valores Padrão
Combine vários valores alternativos de forma organizada.
Encadeamento de Valores Padrão é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 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.
Mais de uma Alternativa
Às vezes, você tem várias fontes opcionais e quer usar a primeira que não seja nula. É possível encadear vários operadores ??.
let primary: String? = nil
let secondary: String? = "Backup"
let name = primary ?? secondary ?? "Default"
print(name)Como a Cadeia é Interpretada
Leia a ?? b ?? c assim: use a se ele não for nulo; caso contrário, use b; caso contrário, use c. A avaliação para no primeiro valor encontrado.
let a: Int? = nil
let b: Int? = nil
let c = 7
print(a ?? b ?? c)O Primeiro Valor Não Nulo Vence
Assim que um dos opcionais fornece um valor, os demais são ignorados. Aqui, secondary vence, e o padrão final nunca é alcançado.
let primary: Int? = nil
let secondary: Int? = 50
let fallback = 0
print(primary ?? secondary ?? fallback)Todos Opcionais até o Último
Em uma cadeia, normalmente todos os operandos, exceto o último, são opcionais. O último é o padrão não opcional garantido.
let nick: String? = nil
let full: String? = nil
let result: String = nick ?? full ?? "Anonymous"
print(result)Avaliação em Curto-Circuito
Assim como && e ||, a cadeia de ?? usa curto-circuito. Depois que um valor é encontrado, as expressões seguintes não são avaliadas.
func makeDefault() -> Int {
print("default computed")
return 0
}
let found: Int? = 9
print(found ?? makeDefault())Associatividade à Direita
O operador ?? é associativo à direita, portanto a ?? b ?? c é agrupado como a ?? (b ?? c). Esse é exatamente o comportamento desejado para alternativas.
let x: Int? = nil
let y: Int? = nil
let z: Int? = 3
print(x ?? (y ?? (z ?? 0)))Padrões de Configuração em Camadas
O encadeamento é excelente para configurações em camadas: a configuração do usuário, depois a configuração do aplicativo e, por fim, um padrão definido diretamente no código.
let userTheme: String? = nil
let appTheme: String? = "light"
let theme = userTheme ?? appTheme ?? "system"
print(theme)Combinando com Conversões
Você pode encadear conversões que podem falhar com um padrão final para analisar a entrada de forma robusta.
let raw: String? = nil
let parsed = raw.flatMap { Int($0) } ?? 0
print(parsed)Consultas em Dicionários numa Cadeia
Várias consultas em dicionários podem ser encadeadas para usar a primeira chave disponível.
let prefs = ["color": "blue"]
let pick = prefs["accent"] ?? prefs["color"] ?? "gray"
print(pick)Mantendo as Cadeias Curtas
Duas ou três alternativas são fáceis de ler. Se você perceber que está encadeando muitas, considere extrair a lógica para uma função, mantendo a clareza.
let one: String? = nil
let two: String? = nil
let three = "C"
print(one ?? two ?? three)Tipo do Resultado de uma Cadeia
O resultado final de uma cadeia não é opcional, desde que o último operando não seja opcional. Assim, o valor pode ser usado imediatamente com segurança.
let v1: Int? = nil
let v2: Int? = 4
let total: Int = (v1 ?? v2 ?? 0) + 1
print(total)Verificação Rápida
Teste cadeias de alternativas.
Resumo: Encadeando Valores Padrão
Encadeie operadores ?? para tentar vários opcionais em ordem e recorrer a um padrão final. O primeiro valor não nulo vence, a avaliação usa curto-circuito e o resultado não é opcional.
let p: String? = nil
let s: String? = "ok"
print(p ?? s ?? "none")Perguntas Frequentes
A aula “Encadeamento de Valores Padrão” é grátis?
Sim — o texto completo de “Encadeamento de Valores Padrão” é 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 “Encadeamento de Valores Padrão”?
Combine vários valores alternativos de forma organizada. 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 2 de 4.
Quanto tempo leva a aula “Encadeamento de Valores Padrão”?
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
- Operador de Coalescência de Nil
- Encadeamento de Valores Padrão
- Valores Padrão em Parâmetros de Funções
- Subscritos Padrão de Dicionários