De solo lectura por defecto en Mojo
Los argumentos son de solo lectura salvo que digas otra cosa, y eso no cuesta nada al correr.
@fieldwise_init
struct Recipe(ImplicitlyCopyable, Movable):
var title: String
var servings: Int
def scaled(recipe: Recipe, factor: Int) -> Int:
return recipe.servings * factor
def main():
var chili = Recipe("Chili", 4)
print(scaled(chili, 3))
print(chili.title, chili.servings)
Cómo funciona
scaled(recipe: Recipe, factor: Int)reciberecipesinmutnivar.- El cuerpo puede leer
recipe.servingspero no puede asignarle. - De vuelta en
main,chiliqueda intacto e imprime sus valores originales.
Palabras clave y builtins usados aquí
IntMovableStringdefprintreturnstructvar
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 281
- Tokens
- 69
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 52 segundos.
Paso 4 de 5 en Semántica de valores; paso 9 de 22 en Structs y traits.