0Pricing
Swift Academy · Aula

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

  1. Operador de Coalescência de Nil
  2. Encadeamento de Valores Padrão
  3. Valores Padrão em Parâmetros de Funções
  4. Subscritos Padrão de Dicionários
← Voltar para Swift Academy