2022年的 Tcl 編程語(yǔ)言入門參考 2:變量與自定義命令
*提醒:Tcl語(yǔ)言區(qū)分字母大小寫
創(chuàng)建或修改變量:set 變量名 變量值
讀取變量值:set 變量名
刪除變量:unset 變量名
另:與數(shù)組有關(guān)系的內(nèi)容在數(shù)組章節(jié)介紹
變量名
理論上支持任意字符,但特殊字符需要用大括號(hào){}括起來(lái)(在部分情況下可以不用 {} 但很容易出錯(cuò))
在進(jìn)行變量替換時(shí),字母數(shù)字下劃線的變量名可以直接使用,其它變量名需要使用大括號(hào){}
自定義命令
通過(guò)proc命令創(chuàng)建我們自己的命令,proc接收三個(gè)固定參數(shù):1命令名、2參數(shù)列表或args、3代碼段
proc 命令名 {參數(shù)} {代碼段}
*提示:命令名可以用中文,好處是很容易分辨哪些命令是自己創(chuàng)建的
其中參數(shù)列表包含0到多個(gè)參數(shù)名,在調(diào)用命令時(shí),會(huì)為每個(gè)參數(shù)創(chuàng)建同名變量,在代碼段中可以進(jìn)行變量替換(類似于其它語(yǔ)言的參數(shù)調(diào)用)。
?特例:args為proc命令的特殊參數(shù)名,表示0~n個(gè)參數(shù)。調(diào)用命令時(shí),會(huì)把0~n個(gè)參數(shù)值合并為一個(gè)列表,保存在args變量中。
proc命令的幾種常用形式:
proc 無(wú)參數(shù)命令 {} {代碼段}
proc 單參數(shù)命令 {參數(shù)名} {代碼段}
proc 參數(shù)有默認(rèn)值的命令 {{參數(shù) "默認(rèn)值"}} {代碼段}
proc 二參數(shù)命令 {參數(shù)1 參數(shù)2} {代碼段}
proc 0~n可變參數(shù)命令 {args} {代碼段}
proc 前兩個(gè)參數(shù)固定后面不確定的命令 {參數(shù)1 參數(shù)2 args} {代碼段}
返回值
默認(rèn)情況下,proc代碼段中的最后一條語(yǔ)句的值即為自定義命令返回值(也就是運(yùn)行該命令后的結(jié)果),可以使用return命令靈活操縱返回值。
return 結(jié)束自定義命令的運(yùn)行(后續(xù)代碼都不會(huì)再運(yùn)行),并將其后的參數(shù)作為自定義命令的返回值
匿名命令
匿名命令:有些時(shí)候并不需要一個(gè)完整的自定義命令,只想對(duì)變量或某些值做一些操作(即一次性的操作)。此時(shí)可以使用匿名命令apply,用法如下:
apply {{匿名命令參數(shù)名} {代碼段}} 參數(shù)值
其參數(shù)規(guī)則、返回值規(guī)則與proc相同。可以這樣理解:apply就相當(dāng)于"proc + 命令名",然后再把調(diào)用命令時(shí)傳遞的參數(shù)值附加到后面。