Zig Academy · Lección

Slices: un puntero más una longitud

Haga referencia a una ventana dentro de un array.

Lección 2 de 413 pasos

Slices: un puntero más una longitud es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 2 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.

Por qué existen los slices

Los arrays tienen una longitud fija, pero las funciones a menudo necesitan trabajar con cualquier longitud. Un slice resuelve esto describiendo una secuencia flexible de elementos. 🔪

Dos datos

Un slice consiste en dos elementos agrupados: un puntero al primer elemento y una longitud que indica cuántos elementos siguen.

El tipo slice

Escriba un tipo slice como []T, con corchetes vacíos y un tipo de elemento. Este []i32 significa un slice de enteros con signo.

var view: []i32 = undefined;

Los slices toman prestado, no son propietarios

Un slice no es propietario de su memoria; toma prestada una vista de otra estructura, normalmente un array. Los datos subyacentes deben durar más que el slice.

La longitud existe en tiempo de ejecución

A diferencia de un array, el len de un slice es un valor de tiempo de ejecución. Eso permite que un mismo tipo slice abarque muchos tamaños distintos.

const n = view.len;

De un array a un slice

Convierta un array completo en un slice mediante [0..], que significa desde el índice cero hasta el final. El slice apunta ahora a ese array.

var data = [_]i32{ 5, 6, 7 };
const s = data[0..];

Indexar un slice

Lea elementos mediante un slice igual que con un array, usando corchetes. El índice se suma al puntero almacenado para encontrar el valor.

const middle = s[1];

Slices de solo lectura

Un []const u8 es un slice que puede leer, pero a través del cual no puede escribir. const protege los datos prestados frente a cambios accidentales.

const msg: []const u8 = "hi";

Pasar slices es barato

Pasar un slice a una función solo copia el puntero y la longitud, nunca los elementos. Los búferes grandes se pasan sin coste adicional.

fn sum(items: []const i32) i32 {
    // walk items here
}

Los slices siguen teniendo límites comprobados

Como un slice conoce su longitud, su indexación también se comprueba. Superar len provoca un pánico de seguridad en las compilaciones seguras.

Los slices vacíos son válidos

Un slice puede contener cero elementos. Un slice vacío simplemente tiene len igual a 0, y es completamente normal pasarlo a otras funciones.

const nothing: []const i32 = &[_]i32{};

Comprobación rápida

Piense en lo que almacena realmente un slice en comparación con un array fijo. ¿Qué par lo describe?

Resumen

Un slice es un puntero más una longitud que toma prestada una vista de datos existentes, mantiene la comprobación de límites y se pasa de forma económica por referencia. 🎯

Gratis para empezar

Aprende Zig con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Slices: un puntero más una longitud» es gratis?

Sí — el texto completo de «Slices: un puntero más una longitud» 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 «Slices: un puntero más una longitud»?

Haga referencia a una ventana dentro de un array. 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 2 de 4.

¿Cuánto tiempo toma la lección «Slices: un puntero más una longitud»?

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

  1. Arrays de tamaño fijo
  2. Slices: un puntero más una longitud
  3. Crear slices con array[start..end]
  4. Iterar y modificar slices
← Volver a Zig Academy