0Pricing
Zig Academy · Aula

Overflow: + versus +% versus +|

Aprenda a lidar com operações que interrompem, dão a volta ou saturam.

Overflow: + versus +% versus +| é uma aula grátis de Zig 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 Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.

Os números têm limites

Todo inteiro de tamanho definido tem um valor máximo que pode armazenar. Ultrapasse-o e você encontrará o estouro, o momento em que um valor tenta ultrapassar seu intervalo.

Zig detecta estouros

Por padrão, o operador + comum interrompe a execução ao detectar um estouro. Em uma compilação segura, ultrapassar o limite para o programa em vez de corromper o valor.

var x: u8 = 255;
x = x + 1; // panics: overflow

Por que interromper ajuda

Uma falha evidente é melhor que uma resposta errada silenciosa. A interrupção transforma um erro sorrateiro em uma falha óbvia que você pode encontrar e corrigir rapidamente.

Aritmética circular com +%

Às vezes, você quer que o valor volte ao início deliberadamente. O operador +% faz a volta circular, então 255 + 1 em um u8 se torna 0.

var x: u8 = 255;
x = x +% 1; // 0

Quando a volta circular é apropriada

A volta circular é ideal para contadores, hashes e somas de verificação em que voltar ao início é o comportamento desejado. Você a solicita com o sufixo %, nunca por acidente.

Aritmética saturada com +|

O operador +| limita o valor ao limite máximo em vez de fazer uma volta circular. Um u8 em 255 permanece em 255, o que é perfeito para valores que não podem ultrapassar um teto.

var x: u8 = 255;
x = x +| 1; // 255

Três escolhas, uma decisão

Assim, + interrompe, +% faz uma volta circular e +| satura. Você escolhe o comportamento que corresponde à sua intenção, tornando explícito no código o tratamento de estouros.

O mesmo trio para subtração

Esses sufixos não servem apenas para adição. -, -% e -| fornecem subtração com interrupção, circular e saturada exatamente da mesma maneira.

var x: u8 = 0;
x = x -| 1; // 0

E também para multiplicação

A multiplicação segue o mesmo padrão: *, *% e *|. A regra única — escolher o comportamento de estouro — aplica-se a todos os operadores aritméticos.

const big = a *% b; // wrap on overflow

As compilações padrão permanecem seguras

Nos modos Debug e ReleaseSafe, os operadores comuns verificam a ocorrência de estouros. Você só opta por não fazer isso quando tem um motivo real para usar uma operação circular ou saturada.

A intenção está no código

Como cada comportamento tem seu próprio símbolo, quem lê vê sua intenção em relação ao estouro rapidamente. Nada é presumido; o operador deixa tudo explícito.

Verificação rápida

Você quer que um contador u8 volte de 255 para 0. Qual operador deve usar?

Recapitulação: escolha seu comportamento para estouros

A matemática comum interrompe, o sufixo % faz uma volta circular e o sufixo | satura. Escolha deliberadamente, e os estouros nunca serão uma surpresa oculta. 🛡️

Perguntas Frequentes

A aula “Overflow: + versus +% versus +|” é grátis?

Sim — o texto completo de “Overflow: + versus +% versus +|” é 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 “Overflow: + versus +% versus +|”?

Aprenda a lidar com operações que interrompem, dão a volta ou saturam. 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 2 de 4.

Quanto tempo leva a aula “Overflow: + versus +% versus +|”?

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. Operadores aritméticos e de comparação
  2. Overflow: + versus +% versus +|
  3. Operadores bit a bit
  4. Lógica booleana e curto-circuito
← Voltar para Zig Academy