Sumar con __add__ en Mojo
Implementa __add__ y el operador + empieza a funcionar sobre tu propio tipo.
@fieldwise_init
struct Money(ImplicitlyCopyable, Movable):
var cents: Int
def __add__(self, other: Self) -> Self:
return Money(self.cents + other.cents)
def main():
var lunch = Money(1250)
var coffee = Money(375)
var total = lunch + coffee
print(total.cents)
Cómo funciona
Moneyguarda un número entero decentspara esquivar el redondeo de los floats.__add__(self, other: Self) -> Selfdevuelve unMoneynuevo y deja intactas las dos entradas.lunch + coffeedespacha a ese método.
Palabras clave y builtins usados aquí
IntMovabledefprintreturnselfstructvar
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 261
- Tokens
- 65
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 46 segundos.
Paso 1 de 5 en Operadores; paso 11 de 22 en Structs y traits.