0Pricing
Zig Academy · Aula

Métodos de enumeração e inteiros subjacentes

Adicione comportamento e controle a representação.

Métodos de enumeração e inteiros subjacentes é uma aula grátis de Zig 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 Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.

Enumerações podem ter comportamento

Uma enumeração é um tipo real, portanto pode conter métodos. Você declara funções dentro do corpo da enumeração, logo ao lado dos nomes dos valores.

Um método em uma enumeração

Escreva uma função dentro da enumeração e use self como primeiro parâmetro. Ela funciona como um método de uma estrutura.

const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };

Chamando métodos de enumerações

Você chama um método com a sintaxe do ponto em um valor. O valor se torna self, então o método sabe em qual variante foi chamado.

const ok = c.isRed();

Toda enumeração tem uma representação inteira

Internamente, cada valor da enumeração corresponde a um inteiro. Zig escolhe um tipo inteiro de suporte pequeno o bastante para comportar todos os seus valores.

A numeração padrão começa em zero

Por padrão, o primeiro valor é 0 e cada valor seguinte aumenta em um. Assim, red é 0, green é 1 e assim por diante, de acordo com a ordem.

const Color = enum { red, green, blue }; // 0, 1, 2

Escolhendo o tipo de suporte

Você pode indicar o inteiro de suporte entre parênteses, como enum(u8). Isso fixa a largura exata e é importante para o layout e a interoperabilidade.

const Code = enum(u8) { a, b, c };

Definindo valores explícitos

Atribua um número específico a um valor usando =. Isso é útil quando os inteiros precisam corresponder a um protocolo ou a um registrador de hardware.

const Status = enum(u8) { ok = 0, busy = 1, err = 255 };

De enumeração para inteiro

Transforme um valor de enumeração em seu número com @intFromEnum. Isso fornece o inteiro subjacente para enviar ou armazenar.

const n = @intFromEnum(Status.err); // 255

De inteiro para enumeração

Faça o caminho inverso com @enumFromInt para converter um número novamente em um valor de enumeração do tipo esperado.

const s: Status = @enumFromInt(1);

Converta com cuidado

@enumFromInt presume que o número é uma variante válida. Em compilações seguras, um valor incorreto é detectado; caso contrário, cabe a você validá-lo.

Métodos e etiquetas juntos

Combine as duas ideias: escolha um tipo de suporte para o layout, defina valores para um protocolo e adicione métodos para manter a enumeração autocontida.

Verificação rápida

Você tem um valor da enumeração Status e precisa de seu número subjacente. Qual função integrada deve usar?

Recapitulação

Você deu métodos às enumerações usando self, escolheu um inteiro de suporte como enum(u8), definiu valores explícitos e converteu nos dois sentidos com @intFromEnum e @enumFromInt. 🔢

Perguntas Frequentes

A aula “Métodos de enumeração e inteiros subjacentes” é grátis?

Sim — o texto completo de “Métodos de enumeração e inteiros subjacentes” é 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 Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.

O que vou aprender em “Métodos de enumeração e inteiros subjacentes”?

Adicione comportamento e controle a representação. Você pratica Zig 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 Zig Academy?

Nenhuma experiência prévia é necessária. Zig 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 “Métodos de enumeração e inteiros subjacentes”?

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 Zig Academy?

Sim. Cada aula de Zig 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. Enumerações para um conjunto fixo de valores
  2. Uniões que armazenam um entre vários tipos
  3. Uniões marcadas e switch
  4. Métodos de enumeração e inteiros subjacentes
← Voltar para Zig Academy