typestar

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

  1. __init__(out self, var cells: List[Int]) toma la lista en propiedad y la mueve adentro con ^.
  2. __getitem__ lee una celda; __setitem__ necesita mut self para escribir una.
  3. grid[1] = 20 y luego grid[1] ejercitan las dos mitades.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 5 en Operadores; paso 13 de 22 en Structs y traits.

← Anterior Siguiente →