Switch

El switch de Zig funciona tanto como una declaración como una expresión. Los tipos de todas las ramas deben coercer al tipo sobre el cual se está realizando el switch. Todos los valores posibles deben tener una rama asociada; no se pueden dejar valores fuera. Los casos no pueden caer en otras ramas.

Un ejemplo de una declaración switch. El else es necesario para satisfacer la exhaustividad de este switch.

const expect = @import("std").testing.expect;

test "switch statement" {
    var x: i8 = 10;
    switch (x) {
        -1...1 => {
            x = -x;
        },
        10, 100 => {
            //consideraciones especiales deben ser tomadas
            //al dividir enteros con signo
            x = @divExact(x, 10);
        },
        else => {},
    }
    try expect(x == 1);
}

Aquí está lo anterior, pero como una expresión switch.

test "switch expression" {
    var x: i8 = 10;
    x = switch (x) {
        -1...1 => -x,
        10, 100 => @divExact(x, 10),
        else => x,
    };
    try expect(x == 1);
}
Edita esta pagina Última actualización: 5/15/2024 por Vital