目錄
1.輸出
2.賦值
3.替換
tcl使用」puts」關鍵字來作為輸出語句
tcl 使用「set」關鍵字來定義引數,不必指定變數值的型別,因為變數puts hello
結果=> hello
puts –nonewline "hello hello"
結果=>hello hello
值的型別僅一種 ---- 字串。為變數賦值時,會為變數開闢一段記憶體空間來
儲存變數值。
(1)$符實現引用替換,用以引用引數值。tcl 對替換只進行一遍解釋,對巢狀的」$」不於理睬。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
set foo oo
=>oo
(2) :方括號「」完成命令替換。用「」將一條命令括起來,命令執行完成後,返回結果。set dollar foo
=>foo
set x $$dollar
=>$foo ;
#只解釋一次,將「$dollar」用 dollar 的值(foo)代替, ;
#命令等效為 set x ,大括號阻止替換。
set x
=>$foo
set y $x
=>$foo ; #一輪替換
set b [set a 5] ;#set a 5 命令輸出的結果賦給 b
=>5
puts $b
=>5
set c [expr 5 * 10] ;#將乘式結果賦給 c
=>50
(3): 」 」 和{}
雙引號和花括號將多個單詞組織成乙個引數,也是一種替換操作。」」和{}內的替換如何進行呢?一般的原則是在」 「內的替換正常進行,而在{}內的替換有可能會被阻止。
set z [set x "this is a string within quotes within braces"]set a 123
=>123
puts "$a" #會替換
=>123
puts #不會替換
=>$a
puts $z
上面的**將給出結果this is a string within quotes within braces
考慮到變數z設定為字串,這部分很清楚"this is a string within quotes within braces"
至於第二個命令,在替換之後,應該是這樣的puts "this is a string within quotes within braces"
但是,請檢查以下**:
set z
puts $z
現在的結果是[set x "this is a string within quotes within braces"]
。
因為花括號分組的所有東西都沒有替代品。所以變數z現在應該保持該值[set x "this is a string within quotes within braces"]
。
但對於下一行:puts $z
,我認為$z
應該用它的值代替,[set x "this is a string within quotes within braces"]
命令現在看起來像
TCL之基本語法1
set就是變數宣告,這個宣告在需要使用的指令下會自動執行,不會出現沒有宣告的錯誤。但是對於puts這類定向訪問的是不能沒有宣告的。這裡簡單理解tcl中的變數 以字串的形式存在,具體的值由 符號訪問。訪問之前必須已經有宣告。set x 0 puts x puts x 兩個puts都是可以顯示結果的,掐...
1 TCL指令碼基本語法(概要)
乙個tcl指令碼可以包含乙個或多個命令。命令之間必須用換行符或分號隔開。第乙個單詞代表命令名,另外的單詞則是這個命令的引數,用空格或tab鍵隔開。變數置換 命令置換 反斜槓置換 例如set msg multiple space 如果沒有 則有報警。雙引號將各種分隔符將不作處理,對換行符及 和兩種置換...
1 TCL指令碼基本語法(概要)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!乙個tcl指令碼可以包含乙個或多個命令。命令之間必須用換行符或分號隔開。第乙個單詞代表命令名,另外的單詞則是這個命令的引數,用空格或tab鍵隔開。變數置換 命令置換 反斜槓置換 例如set msg multiple space 如果沒有 則有報警。...