Labelled Blocks

Los bloques en Zig son expresiones y pueden recibir etiquetas, que se utilizan para producir valores. Aquí, estamos usando una etiqueta llamada “blk”. Los bloques producen valores, lo que significa que se pueden utilizar en lugar de un valor. El valor de un bloque vacío {} es un valor del tipo void.

test "labelled blocks" {
    const count = blk: {
        var sum: u32 = 0;
        var i: u32 = 0;
        while (i < 10) : (i += 1) sum += i;
        break :blk sum;
    };
    try expect(count == 45);
    try expect(@TypeOf(count) == u32);
}

Esto puede verse como equivalente a i++ en C.

blk: {
    const tmp = i;
    i += 1;
    break :blk tmp;
}
Edita esta pagina Última actualización: 5/15/2024 por Vital