0Pricing
Swift Academy · Aula

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

  1. if let e Vinculação Abreviada
  2. guard let para Saída Antecipada
  3. Vinculação de Vários Opcionais
  4. Padrão de Opcional em switch e for
← Voltar para Swift Academy