typestar

Structs y traits

22 pasos en 5 series de Mojo.

Un struct es la forma de nombrar un tipo en Mojo. No tiene encabezado oculto, ni vtable, ni una reserva de memoria que no pediste — los campos que declaras son la memoria que ocupa el valor, y el compilador los acomoda planos. Eso es lo que quiere decir la gente cuando llama a los structs de Mojo tipos de costo cero.

El corazón de todo es la semántica de valores. Asignar un struct lo copia en vez de crear un alias, y cada argumento declara su intención: de solo lectura por defecto, mut cuando la función edita el valor de quien la llama, var más un circunflejo al final cuando la propiedad se mueve. Los traits agregan encima comportamiento compartido sin renunciar a nada de eso — una función genérica acotada por un trait se compila de nuevo para cada tipo que encuentra, así que la abstracción desaparece antes de que el programa corra.

Este tour arma uno desde los campos pelados, sigue un valor por copias y transferencias, le enseña a un struct los operadores que merece, y cierra con los traits y el código genérico que habilitan.

Empieza este tour

Un primer struct

Semántica de valores

Operadores

Traits

Bis

  • Libro de cuentasUn struct de cuenta que cuida su propio saldo y lleva un historial corrido.
  • Galería de figurasUn trait, tres figuras y una sola función genérica que las tabula todas.

Los otros tours de Mojo