Tcl: matrices

Una matriz es una disposición sistemática de un grupo de elementos que utiliza índices. La sintaxis de la matriz convencional se muestra a continuación.

set ArrayName(Index) value

A continuación se muestra un ejemplo para crear una matriz simple.

#!/usr/bin/tclsh

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

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Tcl
C Language

Tamaño de la matriz

La sintaxis para calcular la matriz de tamaño se muestra a continuación.

[array size variablename]

A continuación se muestra un ejemplo para imprimir el tamaño.

#!/usr/bin/tclsh

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

Cuando se ejecuta el código anterior, produce el siguiente resultado:

2

Iteración de matriz

Sin embargo, los índices de matriz pueden ser valores no continuos como los especificados para el índice 1, luego el índice 10 y así sucesivamente. Pero, en caso de que sean continuos, podemos usar la iteración de la matriz para acceder a los elementos de la matriz. A continuación se muestra una iteración de matriz simple para imprimir elementos de la matriz.

#!/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)"
}

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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

Matrices asociativas

En Tcl, todas las matrices son asociativas por naturaleza. Las matrices se almacenan y recuperan sin ningún orden específico. Las matrices asociativas tienen un índice que no es necesariamente un número y pueden estar escasamente pobladas. A continuación se muestra un ejemplo simple de matriz asociativa con índices no numéricos.

#!/usr/bin/tclsh

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

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Dave
14

Índices de matriz

La sintaxis para recuperar índices de matriz se muestra a continuación.

[array names variablename]

A continuación se muestra un ejemplo para imprimir el tamaño.

#!/usr/bin/tclsh

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

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Age Name

Iteración de matriz asociativa

Puede utilizar los índices de matriz para iterar a través de la matriz asociativa. A continuación se muestra un ejemplo.

#!/usr/bin/tclsh

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

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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