Central Docs
Catálogo Inicio

Control y funciones

Condicionales

Una condición debe ser bool; elif y else pertenecen al mismo bloque:

func sign(value: int32) int32:
    if value < 0:
        return -1
    elif value == 0:
        return 0
    else:
        return 1

Las variables creadas dentro del bloque no existen después de él.

while

func count(limit: int32) int32:
    current: int32 = 0
    while current < limit:
        current += 1
    return current

La condición se evalúa antes de cada iteración. break sale del bucle más cercano y continue vuelve a evaluar la condición.

for ran y for in

ran exige iterador unsigned fijo y rango ascendente:

for i: uint32 ran (0, 4, 1):
    pass

in recorre la primera dimensión de un array y obtiene su longitud del tipo:

values: int32[3] = {1, 2, 3}
for i: int32 in values:
    values[i] += 1

El iterador es local y de solo lectura. No se puede reutilizar su nombre en un for anidado.

Retornos especiales

Una función Never no vuelve y solo puede terminar mediante una llamada como sentencia:

func stop() Never:
    while true:
        pass

func main() int32:
    stop()

El compilador considera inalcanzable el código posterior a una llamada Never. Una función normal debe conservar una ruta de retorno para todas sus rutas alcanzables.