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
- El decorador genera un
__init__que tomared,greenyblue. brightnesspromedia los tres canales con división entera.Color(0, 128, 128)llama al constructor generado de forma posicional.
Palabras clave y builtins usados aquí
IntMovabledefprintreturnselfstructvar
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.
Paso 3 de 5 en Un primer struct; paso 3 de 22 en Structs y traits.