Array
Un Array è una collezione ordinata di valori. Contiene numeri, stringhe o qualsiasi valore, e la sua indicizzazione è in base 0.
Dichiarare e creare
Dichiara con il tipo Array e assegna un letterale tra parentesi quadre. Gli elementi sono separati da virgola:
var numeros: Array;
var nomes: Array;
begin
numeros := [10, 20, 30, 40, 50];
nomes := ["Alice", "Bob", "Carlos", "Diana"];
WriteLn("Arrays criados");
end.Arrays criados
Un array vuoto è []:
var vazio: Array;
begin
vazio := [];
WriteLn("Array vazio pronto");
end.Array vazio pronto
Accedere per indice
Usa array[indice] per leggere un elemento. Il primo elemento si trova all'indice 0:
var numeros: Array;
var nomes: Array;
begin
numeros := [10, 20, 30, 40, 50];
nomes := ["Alice", "Bob", "Carlos", "Diana"];
WriteLn("Primeiro número: ", numeros[0]);
WriteLn("Último nome: ", nomes[3]);
end.Primeiro número: 10 Último nome: Diana
Assegnare elementi
Modifica un elemento con array[i] := valore;:
var numeros: Array;
begin
numeros := [10, 20, 30];
numeros[2] := 99;
WriteLn("Terceiro após modificação: ", numeros[2]);
end.Terceiro após modificação: 99
Iterare con for..in
Il modo più diretto di percorrere un array è il for..in, che fornisce direttamente ogni elemento:
var numeros: Array;
var item: Integer;
var soma: Integer;
begin
numeros := [10, 20, 30, 40, 50];
soma := 0;
for item in numeros do
begin
WriteLn(" ", item);
soma := soma + item;
end;
WriteLn("Soma: ", soma);
end.10 20 30 40 50 Soma: 150
Funziona anche con array di stringhe:
var nomes: Array;
var nome: String;
begin
nomes := ["Alice", "Bob", "Carlos"];
for nome in nomes do
WriteLn("Olá, ", nome, "!");
end.Olá, Alice! Olá, Bob! Olá, Carlos!
Indici fuori dall'intervallo
Accedere a un indice inesistente genera un errore in fase di esecuzione:
var numeros: Array;
begin
numeros := [10, 20, 30];
WriteLn(numeros[5]); // erro: índice fora do intervalo
end.Fuori intervallo è catturabile
Un accesso fuori dai limiti genera un errore che puoi racchiudere in try/catch. Vedi Gestione degli errori.
Funzioni ausiliarie
Per operazioni più avanzate — ordinare, filtrare, mappare, sommare, concatenare — importa la libreria internal.collections:
uses internal.collections;
var numeros: Array;
begin
numeros := [3, 1, 2];
WriteLn("Tamanho: ", arraySize(numeros));
WriteLn("Soma: ", arraySum(numeros));
end.Tamanho: 3 Soma: 6
Collezioni complete
internal.collections offre arraySort, arrayFilter, arrayMap, arrayReduce, arrayReverse, arrayContains e molto altro. Vedi Librerie interne.
Ora impara a gestire i fallimenti in fase di esecuzione in Gestione degli errori.