Expresiones de tiempo de compilación en Mojo
Una función común corre en compilación cuando su resultado alimenta una vinculación comptime.
def factorial(n: Int) -> Int:
var result = 1
for i in range(2, n + 1):
result *= i
return result
comptime SEATS = 5
comptime ORDERINGS = factorial(SEATS)
comptime LABEL = "orderings: " + String(ORDERINGS)
def main():
print(SEATS, ORDERINGS)
print(LABEL)
Cómo funciona
factoriales undefcorriente, con un cuerpo corriente de ejecución.comptime ORDERINGS = factorial(SEATS)la corre durante la compilación.LABELmuestra que armar cadenas también se pliega de antemano.
Palabras clave y builtins usados aquí
IntStringdefforprintrangereturnvar
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 257
- Tokens
- 67
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 57 segundos.
Paso 4 de 5 en Mojo en tiempo de compilación; paso 4 de 22 en Parámetros y SIMD.