在Tcl中,没有变量声明的概念.一旦遇到新的变量名,Tcl将定义一个新变量.
变量名称可以包含任何字符和长度.您甚至可以通过将变量括在花括号中来获得空格,但它不是首选.
set命令用于为变量赋值. set命令的语法是,
set variableName value
A几个变量的例子显示在下面和下面;
#!/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