Slices

Los slices pueden pensarse como un par de [*]T (el puntero a los datos) y un usize (el conteo de elementos). Su sintaxis es []T, donde T es el tipo hijo. Los slices se utilizan ampliamente en Zig cuando necesitas operar sobre cantidades arbitrarias de datos. Los slices tienen los mismos atributos que los punteros, lo que significa que también existen slices constantes. Los bucles for también operan sobre slices. Las literales de cadena en Zig se convierten en []const u8.

Aquí, la sintaxis x[n..m] se utiliza para crear un slice a partir de un array. Esto se llama fragmentación, y crea un slice de los elementos que comienzan en x[n] y terminan en x[m - 1]. Este ejemplo utiliza un slice constante, ya que los valores a los que apunta el slice no necesitan ser modificados.

fn total(values: []const u8) usize {
    var sum: usize = 0;
    for (values) |v| sum += v;
    return sum;
}

test "slices" {
    const array = [_]u8{ 1, 2, 3, 4, 5 };
    const slice = array[0..3];
    try expect(total(slice) == 6);
}
Edita esta pagina Última actualización: 5/15/2024 por Vital