Nyx con Ejemplos

Arrays

Los arrays en Nyx son colecciones dinámicas y ordenadas que crecen automáticamente. Se pueden crear con una sintaxis literal, acceder a los elementos por índice, agregar elementos con push e iterar con for-in.

Código

// Arrays: crear, push, length, acceso por índice, iterar

fn main() -> int {
    // Crear array literal
    let numeros: Array = [10, 20, 30]

    // Acceso por índice
    print("primer: " + int_to_string(numeros[0]))
    print("ultimo: " + int_to_string(numeros[2]))

    // length
    print("longitud: " + int_to_string(numeros.length()))

    // Array mutable con push
    var lista: Array = [1, 2, 3]
    lista.push(4)
    lista.push(5)
    print("tras push, longitud: " + int_to_string(lista.length()))

    // Iterar con for-in
    print("elementos:")
    for n: int in lista {
        print("  " + int_to_string(n))
    }

    // Modificar elemento
    lista[0] = 99
    print("lista[0] tras modificar: " + int_to_string(lista[0]))

    return 0
}

Salida

primer: 10
ultimo: 30
longitud: 3
tras push, longitud: 5
elementos:
  1
  2
  3
  4
  5
lista[0] tras modificar: 99

Explicación

Los arrays literales usan corchetes: [10, 20, 30]. Los elementos se indexan desde cero, así que arr[0] es el primer elemento y arr[arr.length() - 1] es el último. Acceder a un índice fuera de rango es un error en tiempo de ejecución.

El método .length() devuelve la cantidad de elementos que tiene el array actualmente como un int. El método .push(value) agrega un nuevo elemento al final, haciendo crecer el array automáticamente — no hace falta redimensionar manualmente.

Al iterar con for n: int in lista, la anotación de tipo : int le indica al compilador qué tipo esperar para cada elemento. Esto es opcional cuando el compilador puede inferirlo, pero ser explícito evita ambigüedades con arrays heterogéneos.

La asignación de elementos (lista[0] = 99) requiere que el array esté declarado con var, no con let. Un array declarado con let no se puede mutar después de creado.

← Anterior Siguiente →

Source: examples/by-example/05-arrays.nx