表达式构成要素
操作数、操作符和圆括号,其中圆括号不是必须
算数操作符
-a,
+a,
a+b,
a-b,
a*b,
a/b,
a%b,
a**b a的b次方
以a%b为例,a%b需要满足a=b*q+r,且0≤|r|<|b|,r和q同符号
expr {7 % 2}
=> 1
expr {8 % 2}
=> 0
expr {7 % -2}
=> -1
expr {7 / -2}
=> -4
关系操作符
a<b,
a<=b,
a>b,
a>=b,
a==b,
a!=b
注意:对于字符串的比较,建议采用string compare命令的方式执行,相对于本节介绍的操作符,该命令更高效。
逻辑操作符
a&&b,
a||b,
!a
在Tcl中,零值表示假(False),其他所有非零值表示真(True)。此外,Tcl还可以用字符串表示布尔变量:yes、on、true表示真,no、off、false表示假。
按位操作符
a&b,
a|b,
a^b,
~a,
a<<b (把a左移b位,低位补0),
a>>b (把a右移b位,正数补0,负数补1)
选择操作符
x?a:b (若x位真,处理参数a,否则处理参数b)
数学函数
abx(x) x的绝对值
fmod(x,y) x除以y的余数
max(arg,...) 所有数值参数取最大值
min(arg,...) 所有数值参数取最小值
pow(x,y) x的y次方
sqrt(x) x的平方根
hypot(x,y) x2+y2的平方根
exp(x) e的x次方
log(x) x的自然对数
log10(x) x的以10为底的对数
sin(x) x的正弦值,x用弧度表示
cos(x) x的余弦值,x用弧度表示
tan(x) x的正切值,x用弧度表示
asin(x) x的反正弦值,值域从-π/2~π/2
acos(x) x的反余弦值,值域从0~π
atan(x) x的反正切值,值域从-π/2~π/2
atan2(x,y) x/y的反正切值,值域从-π/2~π/2
sinh(x) x的双曲正弦值
cosh(x) x的双曲余弦值
tanh(x) x的双曲正切值
ceil(x) 向上取整,不小于x的最小整数
floor(x) 向下取整,不大于x的最大整数
round(x) 对x进行四舍五入得到的整型值
rand() 产生在[0,1]区间的伪随机浮点数
srand(x) 使用整数种子x重设随机数生成器
bool(x) 将可转换的表达式转为布尔值,1为真,0为假
double(x) 数值等于整型值x的实数
int(x) 将x转换为整型值
wide(x) 用至少64位位宽表示x的整型值
字符串操作
eq 比较两个字符串是否相等,若相等,则返回1,否则返回0
ne 比较两个字符串是否不等,若不等,则返回1,否则返回0