Tcl - Variables

En Tcl, no existe el concepto de declaración de variable. Una vez que se encuentra un nuevo nombre de variable, Tcl definirá una nueva variable.

Denominación variable

El nombre de las variables puede contener cualquier carácter y longitud. Incluso puede tener espacios en blanco encerrando la variable entre llaves, pero no es preferible.

El comando set se usa para asignar valor a una variable. La sintaxis del comando set es,

set variableName value

A continuación se muestran algunos ejemplos de variables:

#!/usr/bin/tclsh

set variableA 10
set {variable B} test
puts $variableA
puts ${variable B}

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

10
test

Como puede ver en el programa anterior, $ variableName se usa para obtener el valor de la variable.

Escritura dinámica

Tcl es un lenguaje escrito dinámicamente. El valor de la variable se puede convertir dinámicamente al tipo requerido cuando sea necesario. Por ejemplo, un número 5 que se almacena como cadena se convertirá en un número al realizar una operación aritmética. Se muestra a continuación:

#!/usr/bin/tclsh

set variableA "10"
puts $variableA
set sum [expr $variableA +20];
puts $sum

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

10
30

Expresiones Matemáticas

Como puede ver en el ejemplo anterior, expr se usa para representar expresiones matemáticas. La precisión predeterminada de Tcl es de 12 dígitos. Para obtener resultados de coma flotante, debemos agregar al menos un solo dígito decimal. Un simple ejemplo explica lo anterior.

#!/usr/bin/tclsh

set variableA "10"
set result [expr $variableA / 9];
puts $result
set result [expr $variableA / 9.0];
puts $result
set variableA "10.0"
set result [expr $variableA / 9];
puts $result

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

1
1.1111111111111112
1.1111111111111112

En el ejemplo anterior, puede ver tres casos. En el primer caso, el dividendo y el divisor son números enteros y obtenemos un número entero como resultado. En el segundo caso, el divisor solo es un número decimal y en el tercer caso, el dividendo es un número decimal. Tanto en el segundo como en el tercer caso, obtenemos un número decimal como resultado.

En el código anterior, puede cambiar la precisión utilizando la variable especial tcl_precision. Se muestra a continuación:

#!/usr/bin/tclsh

set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0];
puts $result

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

1.1111