Tcl - 变量
在Tcl中,没有变量声明的概念。 一旦遇到新的变量名,Tcl就会定义一个新的变量。
变量命名
变量的名称可以包含任意字符和长度。 您甚至可以通过将变量括在大括号中来获得空格,但这不是首选。
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