variable - 建立和初始化乙個名字空間變數variable?
name value...?
name ?
value?
這個命令一般在名字空間中建立乙個或多個變數,每個變數
name使用
value初始化,最後乙個變數的
value是可選的。
如果變數name不存在,就建立乙個,在這種情況下,如果指定了value,就把它的值賦值給建立的變數,如果不指定value,新的變數name就沒有初始化。如果變數已經存在,就賦值value,沒有指定value則保持原來的值。一般來說name不做任何限定(不包含名字空間限定),並且在當前名字空間中建立,如果name包含有名字空間限定,變數就建立在指定的名字空間中,如果變數沒有定義,對於namespace which命令來說就是可見的,但是對info exists命令來說是不可見的。
如果variable命令在乙個tcl過程中執行,就建立乙個區域性變數,這個區域性變數鏈結乙個相關的名字空間變數(因此這些變數由info vars列出),這樣variable命令類似global命令,雖然global命令只是鏈結乙個在全域性範圍內的變數,如果給出了values,就用來修改相關名字空間變數,如果乙個名字空間變數不存在,就建立乙個並且初始化。
name變元不能引用乙個陣列的元素,但是name可以引用整個陣列並且初始化的value必須符合陣列的要求,宣告過變數後,陣列中的元素可以使用set和array命令來配置。
在名字空間中建立乙個變數:
namespace eval foo在名字空間中建立乙個陣列:
namespace eval somens為乙個過程訪問名字空間中的變數:}
namespace eval foo}
tcl tk參考 變數和過程set
set 讀寫變數 setvarname value?返回變數varname的值,如果指定了value,就將value的值給變數varname,如果varname不存在就建立乙個新的變數,然後返回它的值。如果varname包含一對小括號,就代表乙個陣列變數,小括號前為陣列的名稱,小括號內的內容為在陣列...
tcl tk參考 變數和過程apply
func arg1 arg2 func是包含兩個元素的列表或者三個元素的列表,第乙個元素args指明了func的變元,args與proc命令裡面的變元相同。set len llength fun iflassign fun arglist body nsset name ns getglobally...
JS中用var宣告變數和不用var宣告變數的區別
閱前須知 作用域 分為全域性和區域性 函式會開闢自己的作用域 或 空間 或 過程級 變數宣告 變數在指令碼中的第一次出現是在宣告中。變數在第一次用到時就設定於記憶體中,便於後來在指令碼中引用。使用變數之前先進行宣告。可以使用 var 關鍵字來進行變數宣告。var count 單個宣告。var cou...