If / else que devuelven valores
En Zig, un bloque if/else puede devolver un valor para asignarlo a una variable o constante. Eso sí - debe usarse en forma de expresión simple, sin llaves {} para la definición de los bloques:
if_else_return.zig |
|
const std = @import("std"); const print = std.debug.print; pub fn main() void { const n_age = 18; const s_response = if (n_age < 18) "Menor de edad" else "Mayor de edad"; print("Eres {s}\n", .{s_response}); } |
|
$ zig run if_else_return.zig |
|
Eres Mayor de edad |
Cuando devolvemos un valor desde un if/else, resulta muy útil para asignar un valor en función de una condición de manera compacta.
En este ejemplo, el valor asignado a s_response se decide según la condición y queda como una constante inmutable. Inmutable quiere decir que no se puede cambiar y es una buena práctica de programación: muchas veces, el hecho de no poder cambiar el valor de un identificador después de asignarlo nos evita bugs difíciles de detectar.