我是相當新的TCL,和我想要實現這樣的事情:進口程序訪問Tcl的名字空間變量
namespace eval foo {
namespace export bar
proc bar {} {
puts $bob
}
}
namespace eval fred {
namespace import foo::*
variable bob ""
}
fred::bar
然而,我發現,酒吧的範圍內被稱爲foo,所以它告訴我foo :: bob不存在。
我該如何讓fred :: bar訪問fred :: bob?
非常感謝!
你想假裝做OO嗎?如果是這樣,爲什麼不使用_real_對象系統? (如果你使用的是Tcl 8.6,它肯定會有TclOO,並且應該和[incr Tcl]一起出現)我寫了TclOO ...) –
實際上,是的,但我不確定它是否是我正在使用的Tcl 8.6,而且我沒有太多時間在Tcl中學習OO。我也不想偏離一些現有的代碼太遠。最後,我在全局命名空間中定義了我的函數(因爲我不打算在其他命名空間中重新定義它們),並且只傳入命名空間名稱來檢索正確的變量。 – LordSputnik