TCL編程高級教程.ppt

TCL編程高級教程.ppt

ID:55797726

大?。?04.00 KB

頁數(shù):55頁

時(shí)間:2020-06-07

TCL編程高級教程.ppt_第1頁
TCL編程高級教程.ppt_第2頁
TCL編程高級教程.ppt_第3頁
TCL編程高級教程.ppt_第4頁
TCL編程高級教程.ppt_第5頁
資源描述:

《TCL編程高級教程.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、TCL編程高級教程測試平臺開發(fā)部周健明04245培訓(xùn)內(nèi)容命名空間腳本庫和程序包ITCL命名空間命名空間的基本概念命名空間概念定義命名空間示例限定命名名稱解析輸入命令輸出命令命名空間的命令參考命名空間命名空間的基本概念命名空間是一個(gè)命令與變量的集合。命名空間把命令和變量封裝起來以確保它們不會干擾別的命名空間中的命令和變量。TCL已經(jīng)有一個(gè)這樣的集合,就是我們指的全局命名空間。全局命名空間將所有的全局變量和命令放在一起。命名空間也叫做名稱空間、名稱域、命名域等。命名空間命名空間創(chuàng)建:用namespaceeval命令創(chuàng)建一個(gè)新的命名空間命名空間查詢?nèi)?/p>

2、果要在命名空間XXX之外查詢命名空間內(nèi)部變量的值xxx,可以用如下語句:set::XXX::xxx命名空間命名空間示例1:用namespaceeval命令創(chuàng)建一個(gè)新的命名空間:namespaceevalCounter{namespaceexportbumpvariablenum0procbump{}{variablenumincrnum}}set::Counter::num::Counter::bump命名空間命名空間示例2:命名空間是動態(tài)的。你可以在任何時(shí)候添加、刪除命令和變量:namespaceevalCounter{variablenum

3、0procbump{}{variablenumreturn[incrnum]}}命名空間命名空間示例2:命名空間是動態(tài)的。你可以在任何時(shí)候添加、刪除命令和變量:namespaceevalCounter{proctest{args}{return$args}}namespaceevalCounter{renametest""}test過程先被加到Counter命名空間中,稍后又被rename命令移除了命名空間命名空間示例3:命名空間里面可以擁有其它的命名空間形成一個(gè)嵌套的分層目錄結(jié)構(gòu)。namespaceevalFoo{variablefooVar

4、0......namespaceevalCounter{namespaceexportbumpvariablenum0procbump{}{variablenumincrnum}}}命名空間命名空間示例3:現(xiàn)在如果在Foo之外訪問num就要把Foo也加入到限定命名中:set::Foo::Counter::num而在Foo內(nèi)部訪問num就只需要用:setCounter::numset::Foo::Counter::num命名空間限定命名限定命名又叫限定名稱、資格命名或資格名稱,英文原名為qualifiednames每一個(gè)命名空間有一個(gè)原始的名稱諸

5、如histroy或::safe::interp。由于命名空間可能嵌套,限定命名被用來表示命令、變量、子命名空間。限定命名跟Unix的路徑或TK部件(widgets)的分層目錄結(jié)構(gòu)類似,只是命名空間的限定命名使用::作為分隔符而不是/或.而已。最頂層或全局的命名空間的名稱是空(如:空字符串),在形式上與::同義。如果你想訪問另一個(gè)命名空間中的命令和變量,你必須使用額外的語法結(jié)構(gòu),使用命名空間的限定命名。命名空間限定命名除了全局命名空間外,命名空間的命名都不為空。除了作為命名空間的分隔符外,::也不被簡單的命令、變量、命名空間命名接受。在限定命名尾

6、部的::表示該命名空間變量或命令的命名是{},因此在限定命名空間名稱尾部的::會被忽略。另外,在限定命名中單個(gè)的:將被看作單個(gè)的字符,而2個(gè)或更多的單個(gè):將被當(dāng)作一個(gè)命名空間分隔符看待。例如:namespaceeval::aa::bb::cc{setx100};#定義命名空間::aa::bb::cc中的變量xset::aa::bb::cc::x;#查詢x的值,將返回100set::aa:::bb::::cc::::x;#也返回100,b與c之間的3個(gè):,c與x之間的4個(gè):都被當(dāng)作一個(gè)::看待set::aa:bb::c::x;#將出錯(cuò),因?yàn)閎與c

7、之間的1個(gè):被當(dāng)作普通的字符看待,但并沒有定義::a:bb這樣的命名空間,所以要小心!::aa::bb表示的是命名空間aa下的命名空間bb,而::aa:bb表示的是命名空間aa:bb。命名空間名稱解析一般來說,所有的TCL命令都支持變量和命令的限定命名。也就是說你可以在set、proc、rename、interpalias等命令中使用限定命名。如果你提供以::開頭的完整限定命名,則可以精確地找到你指的命令、變量或命名空間。命名空間名稱解析如果命名不是以::開頭的,則意味著相對路徑的命名,TCL提供如下的名稱解析策略:首先在當(dāng)前命名空間中查找,如

8、果沒有才在全局命名空間查找。如果在當(dāng)前命名空間和全局命名空間都沒找到,則該命名尚未定義。例1:settraceLevel0namespaceevalD

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。