Array: creazione, modifica e riempimento
In Gambas possiamo suddividere gli array, o vettori, sotto due profili:
- della definizione del numero dei propri elementi;
- della definizione del numero della propria dimensione.
Con riguardo al primo profilo possiamo ulteriormente suddividere i vettori in due tipi:
1) vettori con quantità definita dei propri elementi;
2) vettori con quantità non definita dei propri elementi.
Il suddetto primo tipo può essere a sua volta distinto in:
a) vettori con definizione esplicita dei valori presenti nei suoi elementi;
b) vettori con definizione implicita dei valori presenti nei suoi elementi.
Nel vettore con definizione esplicita dei valori la quantità degli elementi è definita in modo esplicito ed evidente ponendo fra parentesi quadre e saparati da virgole i valori medesimi.
La definizione esplicita può essere fatta con la dichiarazione della variabile vettoriale:
Dim vettore As Integrer[] = [11, 22, 33, 44]
oppure successivamente:
Dim vettore As Integrer[] ..... vettore = [11, 22, 33, 44]
Nel caso in cui i valori non sono esplicitati, essi potranno essere attribuiti a ciascun elemento in modo dinamico mediante i Metodi ".Add( )" o ".Push( )" tipici dell'Oggetto Array.
Ad ogni modo, un vettore, sia con numero definito di elementi, sia con numero non definito di elementi, è suscettibile di incrementare, ogni qualvolta lo preveda il codice, la quantità dei propri elementi mediante i predetti appositi Metodi ".Add( )" e ".Push( )".
Indice
Creazione di un array monodimensionale senza definizione del numero dei suoi elementi
Un array a una dimensione (monodimensionale) privo di definizione del numero dei suoi elementi dichiarato ponendo:
- il nome indentificatore della variabile vettoriale;
- il tipo di valore assunto dal vettore;
- due parentesi quadre prive al loro interno di qualsiasi carattere.
Esempio:
Dim vettore As Integer[]
La sola e mera dichiarazione dell'array (vettore) non è sufficiente per la creazione dell'array, e dunque con il conseguente uso delle previste sue risorse native (Proprietà e Metodi).
Infatti, per creare un array (vettore) senza definizione del numero dei suoi elementi è necessario (come già accennato) utilizzate la parola-chiave New.
Esempio:
Dim vettore As New Byte[]
Più in particolare con la parola-chiave New viene creato un Oggetto di tipo Array, per la complessa organizzazione interna del quale Gambas alloca in sostanza la necessaria memoria.
Incremento degli elementi
La parola-chiave New è necessaria, dunque, per poter effettuare l'incremento del numero dei suoi elementi interni mediante i Metodi .Add( ) o Push( ), che avviene con la contestuale assegnazione di un determinato valore a ciascun nuovo elemento incrementato.
Esempio:
Public Sub Main() Dim bb As New Byte[] ' All'interno delle parentesi quadre "non" è indicato alcun valore Dim j As Byte ' Allo stato iniziale in questo caso il numero degli elementi del vettore è uguale a zero: Print bb.Count For j = 0 To 9 ' Ad ogni ciclo mediante il metodo ".Push()" (si può usare anhe il metodo .Add() ) viene incrementato di una unità il numero degli elementi del vettore. ' Pertanto viene creato un nuovo elemento di indice successivo all'ultimo che era stato generato. ' Intanto al nuovo elemento attribuito al vettore viene contemporaneamente assegnato un valore. bb.Push(j) Next ' Al termine il numero degli elementi del vettore è incrementato. In tal caso è uguale a 10. Print bb.Count End
Creazione di un array monodimensionale con definizione del numero dei suoi elementi
Un array monodimensionale con definizione del numero dei suoi elementi sarà creato in maniera analoga a quella degli array senza definizione del numero dei suoi elementi, con la differenza, però, che all'interno delle parentesi quadre sarà specificato il numero degli elementi che compongono il vettore.
Esempio:
Dim vettore As New Byte[8]
Va sottolineato che con la definizione esplicita dei valori, contenuti dal vettore, la creazione dell'Oggetto Array avviene automaticamente, non risultando così necessaria in tal caso l'uso della parola-chiave New.
Incremento degli elementi
Anche nel caso di array con dichiarazione del numero degli elementi, l'incremento del loro numero avviene mediante i Metodi .Add( ) o Push( ), che avviene con la contestuale assegnazione di un determinato valore a ciascun nuovo elemento incrementato.
Esempio:
Public Sub Main() Dim bb As New Byte[4] ' Verifica dello stato iniziale del numero degli elementi del vettore: Print bb.Count ' Variazione del numero degli elementi mediante il metodo ".Push()" (si può usare anhe il metodo .Add() ): bb.Push(99) Print bb.Count ' Verifica del risultato: Print bb.Count End
Variazione del numero degli elementi di un array
La variazione del numero degli elementi di un array può avvenire mediante il Metodo ".Resize( )" dell'Oggetto Array. Se la variazione è in incremento, allora i nuovi elementi saranno istanziati a zero.
Esempio:
Public Sub Main() Dim bb As New Byte[4] ' Verifica dello stato iniziale del numero degli elementi del vettore: Print bb.Count ' Variazione del numero degli elementi mediante "dichiarazione esplicita": bb = [0, 1, 2, 3] Print bb.Count ' Variazione del numero degli elementi mediante il metodo ".Resize()": bb.Resize(8) Print bb.Count End