typestar

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

  1. trait Greeter: lista greeting con ... en lugar del cuerpo.
  2. Robot reclama el trait en su encabezado y entonces tiene que implementarlo.
  3. El compilador revisa la conformidad de entrada, así que la llamada no puede fallar.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 5 en Traits; paso 16 de 22 en Structs y traits.

← Anterior Siguiente →