1
Tcl 8.4。tcl使用名稱空間名稱中的變量
我有這個namespace
樹:
namespace eval menu_tree {
#--------------------------------------------------------------------------
## Main Menu
namespace eval main_menu {
variable title "Main Menu"
}
#--------------------------------------------------------------------------
## Setup Menu
namespace eval setup_menu {
variable title "Show Setup Information"
}
#--------------------------------------------------------------------------
## Help Menu
namespace eval help_menu {
variable title "Show Help Information"
}
}
當時的想法是有這樣的功能:
proc print_title {menu} {
puts $menu::title
}
這將很好地工作全局變量。但是,從我所能找到的方面來說,需要在命名空間名稱中使用'$'。我試圖在網上找到答案,但沒有出現。 有誰知道如何去做,如果它甚至有可能?
謝謝, -Ilya。
'$ {menu}'就是訣竅。最終工作的代碼是這樣的:'puts [set menu_tree :: $ {menu} :: title]' – ilya1725 2012-04-04 01:17:32
如果你在一個過程中操作兩次相同的變量,使用'upvar'更容易它以一個局部變量名稱。 'upvar menu_tree :: $ {menu} :: title fruitbat;放$ fruitbat' – 2012-04-04 07:10:57