typestar

Structs dentro de structs en Mojo

Un campo puede ser otro struct, y el conjunto sigue siendo un solo valor plano.

@fieldwise_init
struct Address(ImplicitlyCopyable, Movable):
    var city: String
    var zip_code: String


@fieldwise_init
struct Person(ImplicitlyCopyable, Movable):
    var name: String
    var home: Address

    def label(self) -> String:
        return self.name + " of " + self.home.city


def main():
    var home = Address("Austin", "78701")
    var ada = Person("Ada", home)
    print(ada.label(), ada.home.zip_code)

Cómo funciona

  1. Address junta una city y un zip_code.
  2. Person guarda un Address en su campo home, anidando un struct en otro.
  3. ada.home.zip_code baja los dos niveles encadenando puntos.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
386
Tokens
94
Ritmo de tres estrellas
80 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →