Padrão de Opcional em switch e for
Compare opcionais com padrões case let.
Padrão de Opcional em switch e for é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 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.
Opcionais em seleções
Você pode usar uma seleção diretamente sobre um opcional. Os casos .some(value) e .none correspondem a um valor presente ou a nil.
let value: Int? = 7
switch value {
case .some(let n):
print("Got \(n)")
case .none:
print("Nothing")
}O padrão abreviado com ?
Escrever case let x? é uma forma abreviada de .some(x). O ? final significa “desembrulhar em x”.
let value: String? = "Swift"
switch value {
case let text?:
print(text.uppercased())
case nil:
print("none")
}Correspondendo diretamente a um valor nulo
Você pode corresponder ao caso nil usando o literal nil em vez de .none, o que torna a leitura mais natural.
let value: Int? = nil
switch value {
case let n?:
print(n)
case nil:
print("no value")
}Correspondendo a valores específicos
Você pode combinar valores específicos já desembrulhados com o padrão geral de desembrulhamento.
let status: Int? = 404
switch status {
case 200?:
print("OK")
case 404?:
print("Not Found")
case let code?:
print("Other: \(code)")
case nil:
print("No status")
}Vinculação de valores em laços
Ao iterar sobre opcionais, for case let x? in array ignora automaticamente os elementos nil e desembrulha os demais.
let items: [Int?] = [1, nil, 3, nil, 5]
for case let n? in items {
print(n)
}Como a filtragem do laço funciona
O padrão case let n? corresponde apenas a elementos diferentes de nulo, portanto o corpo do laço é executado somente para valores presentes.
let names: [String?] = ["Ann", nil, "Bo"]
for case let name? in names {
print(name.count)
}Equivalente com desembrulhamento condicional
Você poderia obter o mesmo resultado usando if let dentro de um laço comum, mas for case let x? é mais conciso.
let items: [Int?] = [2, nil, 4]
for item in items {
if let item {
print(item)
}
}Correspondendo a opcionais de enumeração
O padrão de opcionais pode ser combinado com outros padrões, como ao corresponder a valores específicos dentro do opcional.
let codes: [Int?] = [1, 2, nil, 3]
for case let c? in codes where c % 2 == 1 {
print("odd: \(c)")
}Cláusula condicional em laços
Adicione uma cláusula where para filtrar ainda mais depois do desembrulhamento em um laço de correspondência.
let scores: [Int?] = [40, nil, 80, 95]
for case let s? in scores where s >= 80 {
print("high: \(s)")
}Seleção com cláusula condicional
Dentro de uma seleção sobre um opcional, a vinculação desembrulhada pode ser refinada com uma cláusula where.
let value: Int? = 12
switch value {
case let n? where n > 10:
print("big: \(n)")
case let n?:
print("small: \(n)")
case nil:
print("none")
}Por que usar esses padrões
Os padrões de opcionais permitem tratar valores presentes e ausentes em uma única estrutura exaustiva, reduzindo as verificações de valores nulos espalhadas pelo código.
let result: String? = nil
switch result {
case let r?:
print("Value: \(r)")
case nil:
print("Empty result")
}Verificação rápida
Teste os padrões de opcionais.
Recapitulação: padrões de opcionais em seleções e laços
Use case let x? (forma abreviada de .some) e case nil em uma seleção, e for case let x? para iterar sobre elementos diferentes de nulo enquanto os desembrulha, refinando-os opcionalmente com where.
let xs: [Int?] = [10, nil, 20]
for case let x? in xs { print(x) }Perguntas Frequentes
A aula “Padrão de Opcional em switch e for” é grátis?
Sim — o texto completo de “Padrão de Opcional em switch e for” é 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 “Padrão de Opcional em switch e for”?
Compare opcionais com padrões case let. 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 4 de 4.
Quanto tempo leva a aula “Padrão de Opcional em switch e for”?
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
- if let e Vinculação Abreviada
- guard let para Saída Antecipada
- Vinculação de Vários Opcionais
- Padrão de Opcional em switch e for