Ordenar tu propio struct en Mojo
Conforma con Comparable y el sort estándar ordenará tus valores.
from std.builtin.sort import sort
@fieldwise_init
struct Card(ImplicitlyCopyable, Movable, Comparable):
var rank: Int
def __lt__(self, other: Self) -> Bool:
return self.rank < other.rank
def __eq__(self, other: Self) -> Bool:
return self.rank == other.rank
def main():
var hand = [Card(7), Card(2), Card(10), Card(5)]
sort(hand)
for card in hand:
print(card.rank)
Cómo funciona
Comparablese satisface con__lt__y__eq__juntos.- Los dos comparan el campo
rank, que es lo que aquí significa ordenar una carta. sort(hand)reacomoda la lista en el lugar, del rango más bajo primero.
Palabras clave y builtins usados aquí
IntMovabledefforprintreturnselfstructvar
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 369
- Tokens
- 102
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 87 segundos.
Paso 5 de 5 en Traits; paso 20 de 22 en Structs y traits.