Percorrendo e alterando fatias
Leia e escreva por meio de uma fatia.
Percorrendo e alterando fatias é 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.
Percorrendo uma fatia
Depois de obter uma fatia, geralmente você quer visitar cada elemento. O laço for do Zig percorre uma fatia de forma simples, do início ao fim. 🔁
O for sobre os itens
Coloque a fatia entre parênteses e nomeie cada elemento com uma entre barras verticais. O laço fornece um valor a cada passagem.
for (items) |value| {
// use value
}Somente leitura por padrão
Uma captura simples fornece uma cópia de cada elemento. Alterar essa cópia não modifica os dados subjacentes da fatia.
Capture por ponteiro para modificar
Adicione * antes do nome da captura para obter um ponteiro em vez de uma cópia. Agora, escrever por meio dele modifica o elemento real.
for (items) |*value| {
value.* += 1;
}Desreferencie para escrever
Com uma captura de ponteiro, use .* para acessar o valor para o qual ele aponta. Essa sintaxe permite tanto ler quanto atribuir.
value.* = 0;A fatia precisa ser mutável
Para alterar elementos, o tipo da fatia precisa ser simplesmente []T, e não []const T. Uma fatia const impede a escrita por meio dela.
Percorrendo com um índice
Combine a fatia com um intervalo para obter também um contador. A segunda depois da vírgula é o índice atual.
for (items, 0..) |value, i| {
// i is the index
}Indexando diretamente
Você também pode escrever em uma posição pelo índice, sem uma captura no laço. Faça a atribuição entre colchetes, assim como em um vetor.
items[0] = 42;Percorrendo duas fatias juntas
Passe várias fatias para um único laço for para percorrê-las em passo sincronizado. Elas precisam ter o mesmo comprimento ou o programa entra em pânico.
for (xs, ys) |x, y| {
// x and y line up
}Acumulando um resultado
Mantenha um total acumulado em uma var declarada antes do laço e atualize-o a cada passagem para calcular uma soma.
var total: i32 = 0;
for (items) |v| total += v;Ignorando com continue
Dentro do laço, continue pula diretamente para o elemento seguinte. Use-o para ignorar valores que falham em um teste rápido.
for (items) |v| {
if (v < 0) continue;
}Verificação rápida
Você quer dobrar cada elemento de uma fatia []i32 no próprio lugar. Qual forma de captura permite escrever o resultado de volta?
Recapitulação
Percorra uma fatia com for: capturas simples leem cópias, |*value| com .* modifica no próprio lugar, e adicione um intervalo para acompanhar o índice. 🎯
Perguntas Frequentes
A aula “Percorrendo e alterando fatias” é grátis?
Sim — o texto completo de “Percorrendo e alterando fatias” é 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 “Percorrendo e alterando fatias”?
Leia e escreva por meio de uma fatia. 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 “Percorrendo e alterando fatias”?
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
- Matrizes de tamanho fixo
- Fatias: um ponteiro mais um comprimento
- Criando fatias com array[start..end]
- Percorrendo e alterando fatias