В Tcl нет концепции объявления переменных. Как только новое имя переменной встретится, Tcl определит новую переменную.
Именование переменных
Имя переменных может содержать любые символы и длину. Вы даже можете иметь пробелы, заключив переменную в фигурные скобки, но это не является предпочтительным.
Команда set используется для присвоения значения переменной. Синтаксис для команды set:
set variableName value
Несколько примеров переменных показаны ниже —
#!/usr/bin/tclsh set variableA 10 set {variable B} test puts $variableA puts ${variable B}
Когда приведенный выше код выполняется, он дает следующий результат —
10 test
Как вы можете видеть в приведенной выше программе, $ variableName используется для получения значения переменной.
Динамический набор текста
Tcl — это динамически типизированный язык. При необходимости значение переменной может быть динамически преобразовано в требуемый тип. Например, число 5, которое хранится в виде строки, будет преобразовано в число при выполнении арифметической операции. Это показано ниже —
#!/usr/bin/tclsh set variableA "10" puts $variableA set sum [expr $variableA +20]; puts $sum
Когда приведенный выше код выполняется, он дает следующий результат —
10 30
Математические выражения
Как вы можете видеть в приведенном выше примере, expr используется для представления математического выражения. Точность по умолчанию Tcl составляет 12 цифр. Чтобы получить результаты с плавающей запятой, мы должны добавить хотя бы одну десятичную цифру. Простой пример объясняет вышеизложенное.
#!/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. Это показано ниже —
#!/usr/bin/tclsh set variableA "10" set tcl_precision 5 set result [expr $variableA / 9.0]; puts $result
Когда приведенный выше код выполняется, он дает следующий результат —