Enum

Definição

É um agrupamento de constante.

A palavra enum só é considerado uma palavra reservada somente se vier acompanhada da palavra reservada class, por isso essa palavra é denominada soft-keyword.

Por convenção, a nomenclatura de uma constante é definido por todas as letras em maiúscula.

É possível declarar atributos e métodos dentro do corpo do enum, mas para isso é necessário adicionar ; após declarar as constantes, como no seguinte exemplo.

Soft keyword enum

enum class

Declaração de um classe enum:

enum class Cor {
  VERMELHOR,
  LARANJA,
  AMARELO,
  VERDE,
  AZUL
}

enum

Pode ser utilizado como nome de variável, método, etc:

val enum = "abc"

Exemplo

enum class Cor(
  val vermelho: Int,
  val verde: Int,
  val azul: Int
) {
 
    VERMELHO(255, 0, 0),
    LARANJA(255, 165, 0),
    AMARELO(255, 255, 0),
    VERDE(0, 255, 0),
    AZUL(0, 0, 255); // ";" é obrigatório para separação dos atributos e métodos
 
    fun rgb() = ((vermelho * 256 + verde) * 256 + azul)
 
}