Tcl - Arrays

Un array è una disposizione sistematica di un gruppo di elementi utilizzando indici. La sintassi per l'array convenzionale è mostrata di seguito.

set ArrayName(Index) value

Di seguito è mostrato un esempio per la creazione di un array semplice.

#!/usr/bin/tclsh

set languages(0) Tcl
set languages(1) "C Language"
puts $languages(0)
puts $languages(1)

Quando il codice sopra viene eseguito, produce il seguente risultato:

Tcl
C Language

Dimensioni dell'array

La sintassi per il calcolo delle dimensioni dell'array è mostrata di seguito.

[array size variablename]

Di seguito è riportato un esempio per la stampa delle dimensioni.

#!/usr/bin/tclsh

set languages(0) Tcl
set languages(1) "C Language"
puts  [array size languages]

Quando il codice sopra viene eseguito, produce il seguente risultato:

2

Iterazione di array

Tuttavia, gli indici degli array possono essere non continui come i valori specificati per l'indice 1, quindi per l'indice 10 e così via. Ma, nel caso in cui siano continui, possiamo usare l'iterazione dell'array per accedere agli elementi dell'array. Di seguito è mostrata una semplice iterazione di array per la stampa di elementi dell'array.

#!/usr/bin/tclsh

set languages(0) Tcl
set languages(1) "C Language"
for { set index 0 }  { $index < [array size languages] }  { incr index } {
   puts "languages($index) : $languages($index)"
}

Quando il codice sopra viene eseguito, produce il seguente risultato:

languages(0) : Tcl
languages(1) : C Language

Array associativi

In Tcl, tutti gli array per natura sono associativi. Gli array vengono archiviati e recuperati senza alcun ordine specifico. Gli array associativi hanno un indice che non è necessariamente un numero e possono essere scarsamente popolati. Di seguito viene mostrato un semplice esempio di matrice associativa con indici non numerici.

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age) 14
puts  $personA(Name)
puts  $personA(Age)

Quando il codice sopra viene eseguito, produce il seguente risultato:

Dave
14

Indici di array

La sintassi per il recupero degli indici di array è mostrata di seguito.

[array names variablename]

Di seguito è riportato un esempio per la stampa delle dimensioni.

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age) 14
puts [array names personA]

Quando il codice sopra viene eseguito, produce il seguente risultato:

Age Name

Iterazione di array associativi

È possibile utilizzare gli indici di array per scorrere l'array associativo. Di seguito è mostrato un esempio.

#!/usr/bin/tclsh

set personA(Name) "Dave"
set personA(Age) 14
foreach index [array names personA] {
   puts "personA($index): $personA($index)"
}

Quando il codice sopra viene eseguito, produce il seguente risultato:

personA(Age): 14
personA(Name): Dave