tcl tk參考 變數和過程variable

2021-04-17 00:13:48 字數 1036 閱讀 7630

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必須符合陣列的要求,宣告過變數後,陣列中的元素可以使用setarray命令來配置。

在名字空間中建立乙個變數:

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...