SPECTRALANG_

// DOCS NAVIGATION

Arrays_

SOURCE: content/docs/reference/03-tipos-compostos.md03 Tipos Compostos / 1. Arrays

Declaração e Literais / Declaration and Literals

PT-BR:
Arrays são coleções de elementos do mesmo tipo. São criados via literais [elem1, elem2, ...]. O tipo é inferido a partir dos elementos.

EN-US:
Arrays are collections of elements of the same type. They are created via [elem1, elem2, ...] literals. The type is inferred from the elements.

module arrays

from std.io import println

public func main() {
    // Arrays de inteiros / Integer arrays
    let numeros = [1, 2, 3, 4, 5]
    let primos = [2, 3, 5, 7, 11, 13]

    // Arrays de strings / String arrays
    let nomes = ["Alice", "Bob", "Carol"]

    // Arrays de floats / Float arrays
    let temperaturas = [36.5, 37.0, 38.2]

    // Arrays de booleanos / Boolean arrays
    let flags = [true, false, true, true]
}

Indexação / Indexing

PT-BR:
Arrays são indexados com array[indice], começando em 0.

EN-US:
Arrays are indexed with array[index], starting at 0.

let arr = [10, 20, 30, 40, 50]

let primeiro = arr[0]
    // 10
let segundo  = arr[1]
    // 20
let ultimo   = arr[4]
    // 50

Modificação / Modification

PT-BR:
Elementos de array podem ser modificados com atribuição indexada.

EN-US:
Array elements can be modified with indexed assignment.

let arr = [1, 2, 3, 4, 5]
arr[0] = 99
    // [99, 2, 3, 4, 5]
arr[4] = 100
   // [99, 2, 3, 4, 100]

Iteração / Iteration

let arr = [10, 20, 30, 40, 50]

// Com for e range / With for and range
for i in 0..5 {
    println(f"arr[{i}] = {arr[i]}")
}

// Com while / With while
let i = 0
while i < 5 {
    println(f"{arr[i]}")
    i = i + 1
}

// Somando todos os elementos / Summing all elements
let soma = 0
for i in 0..5 {
    soma = soma + arr[i]
}
// soma == 150

Arrays como Parâmetros / Arrays as Parameters

func soma_array(arr: [int], tamanho: int) returns int {
    let total = 0
    for i in 0..tamanho {
        total = total + arr[i]
    }
    return total
}

public func main() {
    let meu_arr = [1, 2, 3, 4, 5]
    let s = soma_array(meu_arr, 5)
    // 15
}

Arrays Multidimensionais / Multidimensional Arrays

// Array de arrays (matriz) / Array of arrays (matrix)
let matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

let elem = matriz[1][2]
    // 6 (linha 1, coluna 2)