Indexar un struct en Mojo
__getitem__ y __setitem__ ponen la sintaxis de corchetes en tu propio contenedor.
struct Grid(Movable):
var cells: List[Int]
def __init__(out self, var cells: List[Int]):
self.cells = cells^
def __getitem__(self, i: Int) -> Int:
return self.cells[i]
def __setitem__(mut self, i: Int, value: Int):
self.cells[i] = value
def main():
var grid = Grid([1, 2, 3])
grid[1] = 20
print(grid[0], grid[1], grid[2])
Cómo funciona
__init__(out self, var cells: List[Int])toma la lista en propiedad y la mueve adentro con^.__getitem__lee una celda;__setitem__necesitamut selfpara escribir una.grid[1] = 20y luegogrid[1]ejercitan las dos mitades.
Palabras clave y builtins usados aquí
IntListMovabledefprintreturnselfstructvar
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 326
- Tokens
- 107
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 86 segundos.
Paso 3 de 5 en Operadores; paso 13 de 22 en Structs y traits.