Declarar un trait en Mojo
Un trait nombra los métodos que un tipo debe dar, sin decir cómo.
trait Greeter:
def greeting(self) -> String:
...
@fieldwise_init
struct Robot(ImplicitlyCopyable, Movable, Greeter):
var model: String
def greeting(self) -> String:
return "unit " + self.model + " online"
def main():
var arm = Robot("K9")
print(arm.greeting())
Cómo funciona
trait Greeter:listagreetingcon...en lugar del cuerpo.Robotreclama el trait en su encabezado y entonces tiene que implementarlo.- El compilador revisa la conformidad de entrada, así que la llamada no puede fallar.
Palabras clave y builtins usados aquí
MovableStringdefprintreturnselfstructtraitvar
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 265
- Tokens
- 68
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 51 segundos.
Paso 1 de 5 en Traits; paso 16 de 22 en Structs y traits.