本帖最后由 i电子 于 2012-8-28 11:18 编辑
变量:在TCL中变量可分为简单变量和关联数组。 (1)简单变量:简单变量由变量名字和变量值组成,它们都可以用字符串表示,如“ask%dk :09213ds”可以表示一个变量的名字或者值,但是一般不建议这么表示,最好是按照C语言中变量名命名规则来命名。 在前两节经常用到set命令,它可以创建未定义的变量,并赋值;也可以改变已定义的变量的值。此处创建变量没有明确定义变量的数据类型,其实在TCL中自动对变量进行数据存储,如图1所示,命令set a 12.6,它是将12.6以字符串的形式赋值给变量a,存储按字符串类型存储;命令set a [expr $a+ 1.2],其中需要取出a中的值进行表达式计算,因此需要将a中的值由字符串类型转换到浮点数类型,这个操作是TCL自动完成的,然后计算结果以浮点数类型赋值给变量a,这时a变量的值是按浮点数类型存储。TCL的这种内部表达形式可以高效率地处理变量的值,TCL解释器会自动为变量管理内存,因此无需进行变量声明。 图1 (2)关联数组:有数组名和数组中元素名组成,与C语言中的数组类似,但不同的是TCL中数组元素名不一定是阿拉伯数组,可以由字符串表示,如a(b)是TCL中的关联数组,数组名是a,数组元素名是b。这边介绍几个对数组操作的命令,如图2所示,set命令可以对一个数组赋值,与简单变量相似;array size命令是返回数组的元素个数;arrayname命令是返回数组的所有元素名。 图2 表达式:表达式的作用就是将操作数与操作符联合起来,产生新的值。 表达式中的操作数一般都是整数或者实数,整数可以是十进制的(普通格式)、二进制的(以0b开头)、八进制的(以0o开头)或者十六进制的(以0x开头)。如图3所示,整数16的不同进制的表达方式。 图3 表达式中的操作符如表1所示,其中包含算术操作符、关系操作符、逻辑操作符、按位操作符和选择操作符。 表1
|