0Pricing
Swift Academy · Aula

Valores associados para dados mais completos

Associe dados aos casos e extraia-os usando correspondência de padrões.

Valores associados para dados mais completos é 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.

Boas-vindas

Os valores associados permitem que cada caso de uma enumeração carregue dados adicionais. Eles transformam enumerações em uniões discriminadas poderosas — a base da modelagem de estados com segurança de tipos no Swift.

Definindo valores associados

```swift enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let product = Barcode.upc(8,85909,51226,3) let web = Barcode.qrCode("https://example.com") ```

Extraindo valores com uma seleção

```swift switch barcode { case .upc(let n, let m, let p, let c): print("UPC: \(n)-\(m)-\(p)-\(c)") case .qrCode(let code): print("QR: \(code)") } ``` Ou use `case let` para vincular tudo de uma vez: ```swift case let .upc(n,m,p,c): ... ```

Valores associados nomeados

```swift enum NetworkResult { case success(statusCode: Int, data: Data) case failure(error: Error) } if case .success(let code, let data) = result { ... } ``` Os rótulos deixam claro o contexto da vinculação.

Valores associados vs. valores brutos

• Valores brutos: constantes em tempo de compilação, todos os casos com o mesmo tipo, propriedade `rawValue` • Valores associados: dados em tempo de execução, cada caso com seu próprio tipo, extraídos por correspondência de padrões Você não pode ter ambos na mesma enumeração.

Opcionais como enumerações

O `Optional` do Swift é literalmente: ```swift enum Optional { case some(Wrapped) case none } ``` Cada `if let`, `switch` e `??` opera sobre esse mesmo mecanismo.

Resultado<Sucesso, Falha>

```swift func fetch() -> Result { ... } switch fetch() { case .success(let data): process(data) case .failure(let err): print(err) } ``` `Result` é uma enumeração da biblioteca padrão com dois casos de valores associados.

Correspondência de padrões em if case

```swift let item = Barcode.qrCode("hello") if case .qrCode(let code) = item { print("QR code: \(code)") } ``` `if case` é conciso quando você só se importa com um caso.

Guard case

```swift func process(_ result: NetworkResult) { guard case .success(_, let data) = result else { return } handle(data) } ``` `guard case` sai antecipadamente se o padrão não corresponder.

Enumerações em coleções

```swift let events: [AppEvent] = [.login("alice"), .pageView("/home"), .logout] let logins = events.compactMap { if case .login(let u) = $0 { return u } else { return nil } } ```

Verificação rápida

Qual palavra-chave é usada para extrair valores associados dentro de um caso de `switch`?

Recapitulação

Principais conclusões: • Valores associados vinculam dados a casos individuais • Extraia-os com `switch`, `if case` ou `guard case` • Use rótulos nomeados para maior clareza: `.success(code: Int, data: Data)` • `Optional` e `Result` são enumerações da biblioteca padrão com valores associados • Não é possível combinar valores associados e valores brutos na mesma enumeração Próximo: enumerações indiretas e estruturas recursivas.

Perguntas Frequentes

A aula “Valores associados para dados mais completos” é grátis?

Sim — o texto completo de “Valores associados para dados mais completos” é 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 “Valores associados para dados mais completos”?

Associe dados aos casos e extraia-os usando correspondência de padrões. 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 “Valores associados para dados mais completos”?

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. Valores brutos e CaseIterable
  2. Valores associados para dados mais completos
  3. Enums indiretos e estruturas recursivas
  4. Modelagem de máquinas de estados com enums
← Voltar para Swift Academy