Tcl學習之--運算式

來源:互聯網
上載者:User

標籤:tcl

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) ? $a : $b}

$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


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Tcl學習之--運算式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.