📜  Tcl-变量

📅  最后修改于: 2020-10-16 06:25:09             🧑  作者: Mango


在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