typestar

Inicialización campo por campo en Mojo

@fieldwise_init escribe el constructor por ti: un argumento por campo, en orden.

@fieldwise_init
struct Color(ImplicitlyCopyable, Movable):
    var red: Int
    var green: Int
    var blue: Int

    def brightness(self) -> Int:
        return (self.red + self.green + self.blue) // 3


def main():
    var teal = Color(0, 128, 128)
    print(teal.red, teal.green, teal.blue)
    print(teal.brightness())

Cómo funciona

  1. El decorador genera un __init__ que toma red, green y blue.
  2. brightness promedia los tres canales con división entera.
  3. Color(0, 128, 128) llama al constructor generado de forma posicional.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
286
Tokens
80
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 60 segundos.

Escribe este fragmento

Paso 3 de 5 en Un primer struct; paso 3 de 22 en Structs y traits.

← Anterior Siguiente →