SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
13.11.2024

Aula 17: Enumerações e Valores Associados em Swift

Em Swift, uma enumeração (enum) é um tipo de dado poderoso que consiste em um grupo de valores relacionados e permite que você trabalhe com esses valores de forma segura quanto ao tipo. As enumerações em Swift podem não apenas representar um conjunto de valores relacionados, mas também podem conter valores associados a cada caso, tornando-as mais flexíveis e poderosas.

Enumerações Básicas

Vamos começar com o básico de como definir uma enumeração. Você pode definir um enum usando a palavra-chave enum, seguida pelo nome da enumeração e seus casos.

Definindo uma Enumeração

enum Direção {
    case norte
    case sul
    case leste
    case oeste
}

Neste exemplo, temos uma enumeração chamada Direção com quatro valores possíveis (casos): norte, sul, leste e oeste.

Usando Enumerações

Você pode criar uma variável do tipo da enumeração e atribuir um caso a ela:

var direçãoViagem = Direção.norte

Para mudar o valor da enumeração:

direçãoViagem = .sul

A sintaxe com ponto (.sul) ajuda a evitar a repetição do nome da enum.

Estrutura Switch com Enumerações

Swift fornece uma poderosa estrutura switch que funciona perfeitamente com enumerações. Ela permite que você trate diferentes casos de forma simples.

Exemplo de Uso de uma Estrutura Switch

switch direçãoViagem {
case .norte:
    print("Você está viajando para o norte.")
case .sul:
    print("Você está viajando para o sul.")
case .leste:
    print("Você está viajando para o leste.")
case .oeste:
    print("Você está viajando para o oeste.")
}

Neste exemplo, com base no valor de direçãoViagem, a mensagem apropriada será impressa.

Enumerações com Valores Associados

Uma das características poderosas das enums em Swift é a capacidade de ter valores associados. Isso significa que cada caso da enumeração pode armazenar informações adicionais de qualquer tipo.

Definindo uma Enumeração com Valores Associados

Vamos supor que queremos definir uma enumeração que representa diferentes tipos de notificações:

enum Notificação {
    case mensagem(String)
    case pedidoAmizade(String)
    case conviteEvento(String, String) // (nomeEvento, local)
}

Nesta enumeração, o caso mensagem tem um valor associado do tipo String, o caso pedidoAmizade também possui um valor associado String, e o caso conviteEvento tem dois valores associados String, nomeEvento e local.

Usando Enumerações com Valores Associados

Você pode criar instâncias dessa enumeração assim:

let notificação1 = Notificação.mensagem("Olá!")
let notificação2 = Notificação.pedidoAmizade("Alice")
let notificação3 = Notificação.conviteEvento("Conferência Swift", "São Francisco")

Acessando Valores Associados

Para acessar os valores associados, você ainda utiliza uma estrutura switch:

switch notificação1 {
case .mensagem(let texto):
    print("Notificação de mensagem com texto: \(texto)")
case .pedidoAmizade(let remetente):
    print("Pedido de amizade de: \(remetente)")
case .conviteEvento(let nomeEvento, let local):
    print("Convite para o evento: \(nomeEvento) em \(local)")
}

Neste exemplo, a palavra-chave let permite que você extraia e use os valores associados de cada caso.

Conclusão

Enumerações com valores associados são extremamente úteis quando você precisa agrupar valores relacionados que podem ter tipos diferentes ou quantidades variadas de informações associadas. Elas fornecem uma maneira clara e segura quanto ao tipo para gerenciar estados, tornando seu código mais expressivo e mais fácil de manter.

Esta aula cobriu os fundamentos das enumerações em Swift, seu uso com estruturas switch e a poderosa característica de valores associados. Com esse conhecimento, você pode começar a aproveitar as enumerações em suas aplicações Swift de forma eficaz!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!