Abaixe a ditadura dos Booleans no Swift

Gabriel Sanzone
2 min readMay 7, 2020

--

Você caiu aqui de paraquedas e esta lendo o titulo pensando “O que esse cara esta falando ? ”. O tema que eu quero abordar aqui é que em Swift podemos usar o Enum, em vez de um Boolean.

Um Enum é um objeto que consiste em um conjunto de valores, ele no final das contas irá se parecer muito com uma classe, mas você pode usar ele como o type de uma variável. Segundo a documentação da apple:

Um Enum define um tipo comum para um grupo de valores relacionados e permite que você trabalhe com esses valores de maneira segura no seu código.

O Enum no Swift é extremamente flexível, e tem muitas aplicações que eu não vou abordar hoje, pois nosso tema é Enum x Boolean.

Para facilitar a minha ilustração, segue um pequeno trecho de código usando Boolean

Bom, a lógica é simples, o código também, certo? Mas esta bem legível ? Se eu não tivesse colocado os comentários, será que você iria entender só de bater o olho? È ai que entra o maravilhoso mundo magico do Enum

Uma Nova Abordagem

Vamos então criar um Enum. Uma sugestão antes, o enum pode ser declarado em cima de uma classe ou em um arquivo novo, se seu enum for pequeno, você pode declarar em cima da classe que será usado. Caso ele seja grande e ou usado em varias classes, você pode criar ele em outro arquivo separado.

enum EstadoLampada {
case ligada
case desligada
}

Uma observação, por convenção o nome do Enum começa com letra maiúscula, assim como o nome de uma classe.

Neste ponto, ja podemos então definir o nosso Enum como type de uma variável e usar veja o exemplo:

Vamos avançar então no nosso Enum, como você pode ver ele ja deixou um pouco mais legível nosso código, porém ele ainda está muito simples. O Enum possibilita fazer algumas pequenas funções . Vou então criar 3 variáveis e uma função e vou deixar as explicações no código.

E agora, que temos nosso enum completo, vamos rescrever o nosso primeiro exemplo com Enum

Quais as vantagens ?

  1. Você pode criar as funções dentro do enum e suas alterações estão bem documentadas em um ponto. Isso facilita o debug.
  2. Você não tem nenhum operador confuso, fica claro o estado dele. Você só precisa bater o olho, eu não preciso explicar se o true é ligado e o false é o desligado.
  3. O código usando Enum fica muito mais legível se comparar com o primeiro exemplo.

--

--