Tcl - Variáveis
Em Tcl, não há conceito de declaração de variável. Assim que um novo nome de variável for encontrado, Tcl definirá uma nova variável.
Nomenclatura de Variável
O nome das variáveis pode conter qualquer caractere e comprimento. Você pode até ter espaços em branco colocando a variável entre colchetes, mas não é o preferido.
O comando set é usado para atribuir valor a uma variável. A sintaxe do comando set é,
set variableName value
Alguns exemplos de variáveis são mostrados abaixo -
#!/usr/bin/tclsh
set variableA 10
set {variable B} test
puts $variableA
puts ${variable B}
Quando o código acima é executado, ele produz o seguinte resultado -
10
test
Como você pode ver no programa acima, o $ variableName é usado para obter o valor da variável.
Digitação Dinâmica
Tcl é uma linguagem tipada dinamicamente. O valor da variável pode ser convertido dinamicamente para o tipo necessário quando necessário. Por exemplo, um número 5 armazenado como string será convertido em número ao fazer uma operação aritmética. É mostrado abaixo -
#!/usr/bin/tclsh
set variableA "10"
puts $variableA
set sum [expr $variableA +20];
puts $sum
Quando o código acima é executado, ele produz o seguinte resultado -
10
30
Expressões Matemáticas
Como você pode ver no exemplo acima, expr é usado para representar expressões matemáticas. A precisão padrão do Tcl é de 12 dígitos. Para obter resultados de ponto flutuante, devemos adicionar pelo menos um único dígito decimal. Um exemplo simples explica o acima.
#!/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
Quando o código acima é executado, ele produz o seguinte resultado -
1
1.1111111111111112
1.1111111111111112
No exemplo acima, você pode ver três casos. No primeiro caso, o dividendo e o divisor são números inteiros e obtemos um número inteiro como resultado. No segundo caso, o divisor sozinho é um número decimal e, no terceiro caso, o dividendo é um número decimal. Tanto no segundo como no terceiro caso, obtemos um número decimal como resultado.
No código acima, você pode alterar a precisão usando a variável especial tcl_precision. É mostrado abaixo -
#!/usr/bin/tclsh
set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0];
puts $result
Quando o código acima é executado, ele produz o seguinte resultado -
1.1111