Iterar y modificar slices
Lea y escriba a través de un slice.
Iterar y modificar slices es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.
Recorrer un slice
Cuando tiene un slice, normalmente querrá visitar todos sus elementos. El bucle for de Zig recorre un slice limpiamente desde el inicio hasta el final. 🔁
Usar for sobre los elementos
Coloque el slice entre paréntesis y asigne un nombre a cada elemento mediante una captura entre barras verticales. El bucle le entrega un valor en cada iteración.
for (items) |value| {
// use value
}Solo lectura de forma predeterminada
Una captura normal le proporciona una copia de cada elemento. Cambiar esa copia no modifica los datos subyacentes del slice.
Capturar mediante un puntero para mutar
Añada * delante del nombre de la captura para obtener un puntero en lugar de una copia. Ahora, escribir a través de él modifica el elemento real.
for (items) |*value| {
value.* += 1;
}Desreferenciar para escribir
Con una captura de puntero, use .* para acceder al valor al que apunta. Esta sintaxis permite tanto leer como asignar.
value.* = 0;El slice debe ser mutable
Para cambiar elementos, el tipo del slice debe ser []T, no []const T. Un slice const impide escribir a través de él.
Recorrer con un índice
Combine el slice con un rango para obtener también un contador. La segunda captura, después de la coma, es el índice actual.
for (items, 0..) |value, i| {
// i is the index
}Indexar directamente
También puede escribir en una posición mediante un índice, sin una captura del bucle. Asigne entre corchetes igual que con un array.
items[0] = 42;Iterar dos slices a la vez
Pase varios slices a un solo bucle for para recorrerlos en paralelo. Deben tener la misma longitud o se producirá un pánico.
for (xs, ys) |x, y| {
// x and y line up
}Acumular un resultado
Mantenga un total acumulado en un var declarado antes del bucle y actualícelo en cada iteración para calcular una suma.
var total: i32 = 0;
for (items) |v| total += v;Omitir con continue
Dentro del bucle, continue salta directamente al elemento siguiente. Úselo para ignorar los valores que no superen una comprobación rápida.
for (items) |v| {
if (v < 0) continue;
}Comprobación rápida
Quiere duplicar cada elemento de un slice []i32 en el mismo lugar. ¿Qué forma de captura le permite escribir de nuevo?
Resumen
Recorra un slice con for: las capturas simples leen copias, |*value| con .* modifica en el mismo lugar y añadir un rango permite llevar el índice. 🎯
Preguntas frecuentes
¿La lección «Iterar y modificar slices» es gratis?
Sí — el texto completo de «Iterar y modificar slices» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Iterar y modificar slices»?
Lea y escriba a través de un slice. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Zig Academy?
No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Iterar y modificar slices»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Zig Academy?
Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Arrays de tamaño fijo
- Slices: un puntero más una longitud
- Crear slices con array[start..end]
- Iterar y modificar slices