Mutar con mut en Mojo
mut marca un argumento que la función puede cambiar en el lugar, sobre el valor de quien llama.
@fieldwise_init
struct Basket(ImplicitlyCopyable, Movable):
var count: Int
def take(mut self, n: Int):
self.count -= n
def refill(mut basket: Basket, n: Int):
basket.count += n
def main():
var basket = Basket(2)
refill(basket, 5)
basket.take(1)
print(basket.count)
Cómo funciona
take(mut self, n: Int)deja que un método escriba en sus propios campos.refill(mut basket: Basket, n: Int)muta un struct que le pertenece amain.- Las dos ediciones se acumulan, así que
basket.countimprime el total corrido.
Palabras clave y builtins usados aquí
IntMovabledefprintselfstructvar
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 269
- Tokens
- 74
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 56 segundos.
Paso 3 de 5 en Semántica de valores; paso 8 de 22 en Structs y traits.