Funciones

Todos los argumentos de un función son inmutables; si se desea una copia, el usuario debe hacerla explícitamente. A diferencia de las variables, que están en snake_case, las funciones están en camelCase. Aquí tienes un ejemplo de declaración y llamada a una función simple.

fn addFive(x: u32) u32 {
    return x + 5;
}

test "function" {
    const y = addFive(0);
    try expect(@TypeOf(y) == u32);
    try expect(y == 5);
}

La recursión está permitida:

fn fibonacci(n: u16) u16 {
    if (n == 0 or n == 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

test "function recursion" {
    const x = fibonacci(10);
    try expect(x == 55);
}

Cuando ocurre la recursión, el compilador ya no puede determinar el tamaño máximo de la pila, lo que puede resultar en un comportamiento inseguro, como un desbordamiento de la pila. Los detalles sobre cómo lograr una recursión segura se cubrirán en el futuro.

Los valores pueden ser ignorados usando _ en lugar de una declaración de variable o constante. Esto no funciona en el ámbito global (es decir, solo funciona dentro de funciones y bloques) y es útil para ignorar los valores devueltos de las funciones si no los necesitas.

_ = 10;
Edita esta pagina Última actualización: 5/15/2024 por Vital