TCL 过程proc
文章目錄
- pro的基本概念結(jié)構(gòu)
- 局部變量和全局變量:
- TCL中的特殊參數(shù)形式;
- 沒有任何參數(shù)的過程, 或者缺省參數(shù)
- 可變個數(shù)的參數(shù)
本篇文章介紹的是proc這個概念,稱之為過程,實現(xiàn)的效果相當(dāng)于你創(chuàng)建了一個TCL的命令一樣,非常類似于C語言中的函數(shù)。
pro的基本概念結(jié)構(gòu)
proc add {x y} {expr $x+ $y}如上面code所示, add作為的是這個過程的名字,xy是過程的參數(shù)列表,參數(shù)之間要用空格隔開,接著用花括號{ } 代表過程體。proc從而生成了一個新的cmd,可以像cmd一樣來調(diào)用他。注意有兩個花括號,第一個是傳遞參數(shù)變量,第二個是proc的實體。
局部變量和全局變量:
在所有過程之外定義的變量稱之為全局變量,而在proc內(nèi)部定義的變量我們稱之為局部變量,二者可以同名。全局變量的作用域是它所在的過程的內(nèi)部,全局變量的作用域則不包括所有過程的內(nèi)部,這里和C很不一樣。用現(xiàn)實生活舉一個例子,就相當(dāng)于一個國家里面又有一個國家,相當(dāng)于國中國一樣,你不管我,我不管你。
如果在proc,也就是局部里面想要調(diào)用一下全局的變量的值,就在局部前面聲明為global,好比要在里面的小國家借用大國家的東西,就需要在自己小國家,聲明這個變量是全局的,所有國民都可以用。
TCL中的特殊參數(shù)形式;
沒有任何參數(shù)的過程, 或者缺省參數(shù)
proc add {} {expr 2+3}上面,我就不提供任何參數(shù),當(dāng)我敲擊add的時候就直接返回5
或者說我們可以設(shè)置一個default值
如上圖所示,var2的默認(rèn)值是2,var3的默認(rèn)值是3 var1沒有設(shè)置默認(rèn)值
可變個數(shù)的參數(shù)
上圖包含的知識比較多,一個是proc的用法,以及args的用法,另外還有foreach的用法。
args就是一個關(guān)鍵詞變量,代表一個list,但是這個list里面的東西我不知道,反正就是一個可變的list類型的變量值。
因此
定義一個過程叫add的過程,然后,參數(shù)有va1 和一個list參數(shù),具體有多少個,我不知道。以后看到args就應(yīng)該知道這個是一個可變的list變量。
然后set 局部變量sum等價于val1
開始執(zhí)行foreach,變量為i,每次i從args這個list變量里面取一個值,就執(zhí)行一下body的執(zhí)行體,將args里面的值賦值給sum變量,最后返回最終的sum
然后自己推一下,就知道上面為什么等于2和20了。
感謝,參考:https://www.cnblogs.com/chip/p/5866689.html
總結(jié)
以上是生活随笔為你收集整理的TCL 过程proc的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCL foreach的用法
- 下一篇: TCL with SNPS - get_