1. 程式人生 > >TCL語言筆記:TCL基礎語法

TCL語言筆記:TCL基礎語法

一、什麼是TCL

Tcl 全稱是 Tool command Language。它是一個基於字串的命令語言,基礎結構和語法非常簡單,易於學習和掌握。

Tcl 語言是一個解釋性語言,所謂解釋性是指不象其他高階語言需要通過編譯和聯結,它象其他 shell 語言一樣,直接對每條語句順次解釋執行。

Tcl 資料型別簡單。對 Tcl 來說,它要處理的資料只有一種——字串。Tcl 將變數值以字串的形式進行儲存,不關心它的實際使用型別。

二、TCL的基本語法

1.輸出:tcl使用”puts"關鍵字來作為輸出語句

[語法] : puts ?-nonewline? ?channelId? string 

Tcl 的輸出命令是“puts”,將字串輸出到標準輸出 channelId

。語法中兩個問號之間的引數為可選引數。

puts hello 
結果=> hello 

puts –nonewline  "hello hello" 
結果=>hello hello

但如果輸出一段有空格的文字,則要用雙引號或者花括號括起來

-nonewline 選項告訴 puts 不輸出回車換行

注意:雙引號和花括號的作用是將多個片語織成一個變元,但他們是有差別的!這種差別就是在處理“替換操作”時,前者允許替換髮生,而後者則可能會阻止替換。關於兩者用法與差別以後會陸續講到。在這裡兩者作用相同。

2.賦值: tcl 使用“set”關鍵字來定義引數,不必指定變數值的型別,因為變數值的型別僅一種——字串。為變數賦值時,會為變數開闢一段記憶體空間來儲存變數值。

[語法] set varName [value]  

複製程式碼
set a Hello        ;#定義變數 a 並賦值 
=>Hello 
puts $a          ;#輸出變數值 
=>Hello 
set a  “Hello world”  ;#重新賦值 
=>Hello world
set a   “Hello world”            
=> Test Tcl     ;#輸出變數值,此時不加”$” 

puts $a         
=>Hello world     ;#輸出變數值,此時要加”$” 

puts a              
=> a ;#輸出字元”a” set b $a =>Hello world puts $b =>Hello world ;#將 a 的值賦給 b
複製程式碼

3.替換

(1):$

“$”符實現引用替換,用以引用引數值。上面也用到過

Tcl 對替換隻進行一遍解釋,對巢狀的”$”不於理睬

複製程式碼
set foo  oo 
=>oo 
set dollar foo 
=>foo 
set x $$dollar 
=>$foo           ;#只解釋一次,將“$dollar”用 dollar 的值(foo)代替, ;#命令等效為 set x {$foo},大括阻止替換。 
set x {$foo}   
=>$foo            
set y $x 
=>$foo           ; #一輪替換 
複製程式碼

(2) :[]

方括號“[]”完成命令替換。用“[]”將一條命令括起來,命令執行完成後,返回結果

複製程式碼
set b [set a   5]                  ;#set a 5 命令輸出的結果賦給 b 
=>5 

puts $b 
=>5 

set c [expr 5 * 10]                 ;#將乘式結果賦給 c 
=>50 
複製程式碼

(3): " " 和{} 

雙引號和花括號將多個單片語織成一個引數,也是一種替換操作。””和{}內的替換如何進行

呢?一般的原則是在" "內的替換正常進行,而在{}內的替換有可能會被阻止

複製程式碼
set a 123
=>123 

puts "$a"         #會替換
=>123

puts {$a}          #不會替換
=>$a
複製程式碼

三、總結

TCL語言的執行順序是:先分組,再替換,最後執行

花括號中不準替換
雙引號和花括號的作用都是分組,但是不同之處在於是否支援替換
語句的執行分3步走:
1、首先分組
2、其次替換
3、最後執行

$的作用是變數引導符,在字串中如果要替換某個變數,可能還需要用{}來界定變數的起始和終點
分組有三種方法:空格,雙引號和花括號
另外轉義符\在這裡的作用是提升或者消除字元的能力