查看: 2338|回复: 1

TCL学习笔记(三)——变量&表达式

[复制链接]

该用户从未签到

发表于 2012-8-28 11:09:39 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 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.jpeg
图1
         (2)关联数组:有数组名和数组中元素名组成,与C语言中的数组类似,但不同的是TCL中数组元素名不一定是阿拉伯数组,可以由字符串表示,如a(b)TCL中的关联数组,数组名是a,数组元素名是b。这边介绍几个对数组操作的命令,如图2所示,set命令可以对一个数组赋值,与简单变量相似;array size命令是返回数组的元素个数;arrayname命令是返回数组的所有元素名。
2.jpg
图2
         表达式:表达式的作用就是将操作数与操作符联合起来,产生新的值。
         表达式中的操作数一般都是整数或者实数,整数可以是十进制的(普通格式)、二进制的(0b开头)、八进制的(0o开头)或者十六进制的(0x开头)。如图3所示,整数16的不同进制的表达方式。
3.jpg
图3
         表达式中的操作符如表1所示,其中包含算术操作符、关系操作符、逻辑操作符、按位操作符和选择操作符。
表1
语法
结果
操作数类型
-a
a的负值
整数、实数
+a
a做一元加操作
整数、实数
!a
逻辑非
整数、实数
~a
a按位取反
整数
a**b
ab次方
整数、实数
a*b
整数、实数
a/b
整数、实数
a%b
取余
整数
a+b
整数、实数
a-b
整数、实数
a<<b
a左移b
整数
a>>b
a算术右移b
整数
a<b
如果a小于b,返回1,否则为0
整数、实数、字符串
a>b
如果a大于b,返回1,否则为0
整数、实数、字符串
a<=b
如果a小于等于b,返回1,否则为0
整数、实数、字符串
a>=b
如果a大于等于b,返回1,否则为0
整数、实数、字符串
a==b
如果a等于b,返回1,否则为0
整数、实数、字符串
a!=b
如果a不等于b,返回1,否则为0
整数、实数、字符串
a  eq b
如果a等于b,返回1,否则为0
字符串
a  ne b
如果a不等于b,返回1,否则为0
字符串
a&b
按位与
整数
a^b
按位异或
整数
a|b
按位或
整数
a&&b
逻辑与
整数、实数
a||b
逻辑或
整数、实数
a?b:c
选择,如果a非零则b,否则c
整数、实数

回复

使用道具 举报

  • TA的每日心情
    无聊
    2013-2-1 13:58
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2012-9-17 14:46:39 | 显示全部楼层
    写的很细致
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 21:48 , Processed in 0.123569 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.