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
同じ変数を1つのプロシージャで2回操作しているなら、エイリアスに 'upvar'を使う方が簡単になるでしょうそれをローカル変数名に変換します。 'upvar menu_tree :: $ {menu} ::タイトルフルーツバス。 puts $ fruitbat' –