typestar

Funciones que lanzan en Mojo

Un def no puede lanzar si su firma no lo dice.

def factorial(n: Int) raises -> Int:
    if n < 0:
        raise Error("factorial needs a non-negative input")
    var result = 1
    for i in range(2, n + 1):
        result *= i
    return result

def main() raises:
    print(factorial(6))
    print(factorial(0))

Cómo funciona

  1. factorial vigila su entrada y lanza un Error con un negativo.
  2. raises va entre la lista de argumentos y la flecha de retorno.
  3. Quien llama lo maneja o se marca raises también, como hace main.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
225
Tokens
62
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 44 segundos.

Escribe este fragmento

Paso 6 de 6 en Variables y funciones; paso 6 de 26 en Fundamentos del lenguaje.

← Anterior Siguiente →