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