l 數值運算元
表示式的運算元通常是整數或實數。整數可能是十進位制,二進位制,八進位制或十六進製制。比如下面同乙個整數
335 --> 十進位制
0o517 --> 八進位制
0x14f --> 十六進製制
0b10100111 --> 二進位制
處理0開頭的十進位制整數最安全的方法是使用scan命令.
下面就是很常用的例子:
l 操作符及其優先級別
tcl與c類似,相同的優先順序符從左到右進行計算。比如:10-4-3與(10-4)-3結果是一樣的,但如果4*2 < 7,計算結果為0,因為*的優先級別大於》,其實那麼多操作符,根本不可能記住,最保險,也是最可靠的就是用()來完成自己的意圖。
l 算術操作符
+, -, *, /, %, 及**
l 關係操作符
=; >; ==; !=
l 邏輯操作符
邏輯操作符 &&, || , 以及!
($x > 4) && ($x < 10),其中每個操作符結果都是0或1
a && b: a與b同時為真,方為真
a || b : a與b只要有乙個為真,就為真
!a : a為假,則為真
tcl中總是用1代表真,0代表假,在tcl中:
false, no以及off表示假
true, yes以及on表示真
note: 這些字串不區分大小寫.
l 按位操作符
tcl中提供了6個操作符. &, |, ^, << , >>,以及~
& : 按位與
| : 按位或
^ : 異或
<<:>
>>: 按位右移
~ : 取反符號
l 三元操作符
expr
$a < $b為條件
1) 如果條件為真: 則選擇$a
2) 如果條件為假: 則選擇$b
l 數學函式
tcl表示式支援數學函式,如sin(),cos(),abs(),exp()等函式,到時候請查閱文件即可.
l 替換
表示式運算元的替換有兩種方式:
方式一: 普通的tcl解析器機制
方式二: 通過表示式處理
1. 首先當表示式遇到$,它自己會進行一次變數替換,把變數x的值傳給sin.
2. 其次將2*sin($x)作為引數傳遞給expr.
note: 最好總是把表示式用{}括起來,即使是在使用expr命令的時候,原因一:tcl處理括起來的表示式效率,大大高於沒有括起來的表示式。原因二:避免**中出現一些難以捕捉的安全漏洞.比如說:
set x [expr $input - 2]
如果有使用者輸入[format c:\],tcl解析器直接會將這個字串作為input變數,從而格式化c盤。
l 字串操作
tcl表示式接收字串,一般是下面兩種方式
方式一: 用雙引號
方式二: 用大括號
所以像下面的表示是錯誤的:
l 列表操作
tcl 支援兩個列表操作符,in 與 lsearch –exact
正規表示式例項學習 TCL2
1 空字元 也算任何字元 也就是說乙個點可以表示有乙個字元,也可以表示沒有字元 regexp 0 regexp 1 regexp a 1 regexp 1 regexp 1 regexp 1 1 regexp aaa match 1 set match aaa 為什麼會這樣?regexp aaabb...
lua學習之表示式
3.1 算術運算子 二元運算子 加減乘除冪 一元運算子 負值 這些運算子的運算元都是實數。3.2 關係運算子 如果兩個值d型別不同,則不等 lua通過引用比較tables,userdata,functions,也就是當且僅當表示同乙個物件時才相等。3.3 邏輯運算子 and or not a and...
PHP學習之PHP表示式
php 表示式表示式是 php最重要的組成元素。在 php 3.0中,幾乎你所寫的任何東西都是表示式。表示式的最簡單但精確的定義是 有乙個值的任何東西 乙個簡單的例子是常量和變數。當你寫 a 5 時,你給 a 賦了值 5 在這種情況下,5 是乙個整形常量 在此,你是希望把 a 賦值成 5。所以寫 b...