TCL变量 - Tcl教程

在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

当上述代码被执行时,它会产生以下结果。

1.1111