Tcl學習之 表示式

2021-07-03 18:17:19 字數 1873 閱讀 5094

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...