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