typestar

catch y orelse en Zig

Dos operadores de respaldo: catch para uniones de error, orelse para opcionales.

const std = @import("std");

pub fn main() void {
    // parseInt returns an error union; catch supplies the fallback.
    const good = std.fmt.parseInt(i32, "42", 10) catch 0;
    const bad = std.fmt.parseInt(i32, "4x2", 10) catch 0;
    std.debug.print("good {d}, bad fell back to {d}\n", .{ good, bad });

    // orelse does the same job for optionals.
    const found = std.mem.indexOf(u8, "causeway", "use");
    const at = found orelse 999;
    std.debug.print("'use' found at index {d}\n", .{at});
}

Cómo funciona

  1. parseInt(...) catch 0 se traga la falla de parseo y pone un cero.
  2. La cadena buena parsea; la mala cae al respaldo, ambas con la misma forma.
  3. orelse hace el trabajo idéntico cuando lo que falta es null, no un error.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
474
Tokens
123
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 105 segundos.

Escribe este fragmento

Paso 2 de 3 en Errores; paso 8 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →