tcl表达式:运算符和优先级
2006-09-12 22:42:0
下面的表格中列出了TCL中用到的运算符,它们的语法形式和用法跟ANSI C中很相似。这里就不一一介绍。下表中的运算符是按优先级从高到低往下排列的。同一格中的运算符优先级相同。
语法形式
结果
操作数类型
-a
!a
~a
a
a
int,float
int,float
int
a*b
a/b
a%b
取模
int,float
int,float
int
a+b
a-b
int,float
int,float
a<<b
a>>b
左移位
右移位
int
int
a<b
a>b
a<=b
a>=b
小于
大于
小于等于
大于等于
int,float,string
int,float,string
int,float,string
int,float,string
a= =b
a!=b
等于
不等于
int,float,string
int,float,string
a&b
位操作与
int
a^b
位操作异或
int
a|b
位操作或
int
a&&b
逻辑与
int,float
a||b
逻辑或
int,float
a?b:c
选择运算
a:int,float
tcl表达式:数学函数
2006-09-12 22:45:0
TCL支持常用的数学函数,表达式中数学函数的写法类似于C\C++语言的写法,数学函数的参数可以是任意表达式,多个参数之间用逗号隔开。例如: 

%set x 2 



% expr 2* sin($x<3) 

1.68294196962 

其中exprTCL的一个命令,语法为: expr arg ?arg ...? 


两个 ?之间的参数表示可省,后面介绍命令时对于可省参数都使用这种表示形式。 expr可以有一个或多个参数,它把所有的参数组合到一起,作为一个表达式,然后求值: 

%expr 12*3 



%expr 1 +2 *3 



需要注意的一点是,数学函数并不是命令,只在表达式中出现才有意义。 

TCL中支持的数学函数如下 


abs( x) Absolute value of x. 

acos( x) Arc cosine of x, in the range 0 to p. 

asin( x) Arc sine of x, in the range -p/2 to p/2. 

atan( x) Arc tangent of x, in the range -p/2 to p/2. 

atan2( x, y) Arc tangent of x/ y, in the range -p/2 to p/2. 

ceil( x) Smallest integer not less than x. 

cos( x) Cosine of x ( x in radians). 

cosh( x) Hyperbolic cosine of x. 

double( i) Real value equal to integer i. 

exp( x) e raised to the power x. 

floor( x) Largest integer not greater than x. 

fmod( x, y) Floating-point remainder of x divided by y. 

hypot( x, y) Square root of ( x 2 + y 2 ). 

int( x) Integer value produced by truncating x. 

log( x) Natural logarithm of x. 


log10( x) Base 10 logarithm of x. 

pow( x, y) x raised to the power y. 

round( x) Integer value produced by rounding x. 

sin( x) Sine of x ( x in radians). 

sinh( x) Hyperbolic sine of x. 

sqrt( x) Square root of x. 

tan( x) Tangent of x ( x in radians). 

tanh( x) Hyperbolic tangent of x. 

TCL运算符优先级按从高到低排列中有很多命令都以表达式作为参数。最典型的是expr命令,另外ifwhilefor等循环控制命令的循环控制中也都使用表达式作为参数。 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。