您当前的位置: 首页 > 

lu-ming.xyz

暂无认证

  • 1浏览

    0关注

    115博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Tcl学习笔记】第4章 表达式

lu-ming.xyz 发布时间:2021-04-28 20:05:00 ,浏览量:1

目录
  • 4.1 数值操作数
  • 4.2 操作符及其优先级
  • 4.3 数学函数
  • 4.4 表达式操作数的替换
  • 4.5 字符串操作
  • 4.6 列表操作

表达式将值(或操作数)与操作符联合起来,产生新的值。

常用的具有表达式参数的命令:

  • expr arg1 [arg2...] 功能:把参数作为表达式处理,获得表达式的值并把这个值作为字符串返回。
  • if{表达式}{...}
4.1 数值操作数
  • 整数的表达格式:
    • 十进制(普通格式):335
    • 二进制(0b开头):0b101001111
    • 八进制(0o开头):0o517
    • 十六进制(0x开头):0x14f
  • 实数的表达格式:ANSI C定义的大多数格式
    • 2.1
    • 7.91e+16
    • 6E4
    • 3.
4.2 操作符及其优先级

Tcl表达式支持的所有操作符相同优先级从左到右进行计算,优先级从高到低排列:

语法结果操作数类型-aa的负值int,real+a对a进行一元加操作int,real!a逻辑非int,real~aa按位取反inta**b指数:a^bint,reala*ba乘bint,reala/ba除bint,reala%ba除b取余inta+ba加bint,reala-ba减bint,realaba算术右移b位,高位补符号位intaba大于bint,real,stringa=ba大于等于bint,real,stringa==ba等于bint,real,stringa!=ba不等于bint,real,stringa eq ba等于bstringa ne ba不等于bstringa in b列表b包含a元素a:string,b:lista ni b列表b不包含a元素a:string,b:lista&ba和b按位与inta^ba和b按位异或inta|ba和b按位或inta&&ba和b逻辑与int,reala||ba和b逻辑或int,reala?b:c三目运算a:int,real 4.3 数学函数

Tcl表达式支持数学函数。 调用: expr 2*sin($x) Tcl中的内建函数:

函数结果abs(x)求绝对值acos(x)反余弦函数asin(x)反正弦函数atan(x)反正切函数atan2(x,y)x/y的反正切函数bool(x)将表达式转化为bool类型ceil(x)向上取整cos(x)余弦函数cosh(x)双曲余弦函数double(i)整数转为实数exp(x)e的x次方floor(x)向下取整fmod(x,y)x除以y的实余数hypot(x,y)求模int(x)取整数部分log(x)自然对数log10(x)以10为底的自然对数max(arg,…)最大值min(arg,…)最小值pow(x,y)x的y次方rand()[0,1]的随机数round(x)四舍五入取整sin(x)正弦sinh(x)双曲正弦sqrt(x)开方srand(x)整数种子的随机数tan(x)正切tanh(x)双曲正切wide(x)表示x的宽度的整型值 4.4 表达式操作数的替换

两种替换方式:

  1. 普通的Tcl解析器机制。 expr 2*sin($x)
  2. 通过表达式处理,在表达式处理时会再进行一轮变量替换和命令替换。 expr {2*sin($x)}

说明:大括号阻止了Tcl解析器替换x的值,将整个表达式传给expr,在表达式处理时进行替换。

这种两次替换的方式对while这种反复处理表达式的命令有很大的影响:

set pow 1
while {$pow            
关注
打赏
1655639048
查看更多评论
0.0457s