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
Addressjunta unacityy unzip_code.Personguarda unAddressen su campohome, anidando un struct en otro.ada.home.zip_codebaja los dos niveles encadenando puntos.
Palabras clave y builtins usados aquí
MovableStringdefprintreturnselfstructvar
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.
Paso 4 de 5 en Un primer struct; paso 4 de 22 en Structs y traits.