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: overflowPor 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; // 0Quando 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; // 255Trê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; // 0E 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 overflowAs 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
- Operadores aritméticos e de comparação
- Overflow: + versus +% versus +|
- Operadores bit a bit
- Lógica booleana e curto-circuito