Nyx con Ejemplos

Maps

Un Map almacena pares clave-valor con búsqueda rápida por clave. Los maps se crean con Map.new() y soportan inserción, recuperación, prueba de pertenencia y enumeración de claves.

Código

// Maps: Map.new(), insert, get, has, size, iterar con keys()

fn main() -> int {
    var capitales: Map = Map.new()

    // Insertar pares clave-valor
    capitales.insert("Argentina", "Buenos Aires")
    capitales.insert("Francia", "Paris")
    capitales.insert("Japon", "Tokio")

    // size
    print("paises: " + int_to_string(capitales.size()))

    // get
    let capital: String = capitales.get("Francia")
    print("Capital de Francia: " + capital)

    // has
    print("tiene Argentina: " + int_to_string(capitales.has("Argentina")))
    print("tiene Brasil: " + int_to_string(capitales.has("Brasil")))

    // Iterar claves
    let ks: Array = capitales.keys()
    print("claves (" + int_to_string(ks.length()) + "):")
    for k in ks {
        print("  " + k)
    }

    return 0
}

Salida

paises: 3
Capital de Francia: Paris
tiene Argentina: 1
tiene Brasil: 0
claves (3):
  Argentina
  Francia
  Japon

Explicación

Los maps en Nyx se crean con Map.new() — no existe una sintaxis de map literal (sería ambigua con las expresiones de bloque). Los maps deben declararse con var si se pretende insertar o modificar entradas después de la creación.

El método .insert(key, value) agrega o actualiza un par clave-valor. .get(key) obtiene el valor de una clave, devolviendo el valor almacenado como String (o el tipo correspondiente). Si la clave no existe, el comportamiento es indefinido — use .has(key) primero para verificar la pertenencia.

.has(key) devuelve un int: 1 significa que la clave existe, 0 que no existe. Este patrón de entero como booleano es común en las funciones de salida de bajo nivel de Nyx. .size() devuelve la cantidad de entradas actualmente en el map.

.keys() devuelve un Array con todas las claves del map. El orden de iteración sobre los hash maps no está garantizado que sea el orden de inserción, por lo que el orden de las claves en la salida puede variar entre ejecuciones.

← Anterior Siguiente →

Source: examples/by-example/06-maps.nx