Учебники

Tcl — переменные

В Tcl нет концепции объявления переменных. Как только новое имя переменной встретится, Tcl определит новую переменную.

Именование переменных

Имя переменных может содержать любые символы и длину. Вы даже можете иметь пробелы, заключив переменную в фигурные скобки, но это не является предпочтительным.

Команда set используется для присвоения значения переменной. Синтаксис для команды set:

set variableName value

Несколько примеров переменных показаны ниже —

Live Demo

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат —

10
test

Как вы можете видеть в приведенной выше программе, $ variableName используется для получения значения переменной.

Динамический набор текста

Tcl — это динамически типизированный язык. При необходимости значение переменной может быть динамически преобразовано в требуемый тип. Например, число 5, которое хранится в виде строки, будет преобразовано в число при выполнении арифметической операции. Это показано ниже —

Live Demo

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат —

10
30

Математические выражения

Как вы можете видеть в приведенном выше примере, expr используется для представления математического выражения. Точность по умолчанию Tcl составляет 12 цифр. Чтобы получить результаты с плавающей запятой, мы должны добавить хотя бы одну десятичную цифру. Простой пример объясняет вышеизложенное.

Live Demo

#!/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

Когда приведенный выше код выполняется, он дает следующий результат —

1
1.1111111111111112
1.1111111111111112

В приведенном выше примере вы можете увидеть три случая. В первом случае, дивиденд и делитель являются целыми числами, и мы получаем целое число в результате. Во втором случае один только делитель является десятичным числом, а в третьем случае дивидендом является десятичное число. И во втором, и в третьем случаях мы получаем десятичное число в качестве результата.

В приведенном выше коде вы можете изменить точность, используя специальную переменную tcl_precision. Это показано ниже —

Live Demo

#!/usr/bin/tclsh

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

Когда приведенный выше код выполняется, он дает следующий результат —