typestar

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

  1. Money guarda un número entero de cents para esquivar el redondeo de los floats.
  2. __add__(self, other: Self) -> Self devuelve un Money nuevo y deja intactas las dos entradas.
  3. lunch + coffee despacha a ese método.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 5 en Operadores; paso 11 de 22 en Structs y traits.

← Anterior Siguiente →