proc foo {param} {
namespace eval foo_ns {
uplevel {set foo_ns::x $param }
}
}
這看起來很醜。導入proc變量到命名空間
[upvar]將不起作用,因爲它無法鏈接到'參數'。
謝謝。從答案
代碼不起作用(tclsh8.4)
------------------------------- ------------
% proc bar {param} {
namespace eval foo_ns {
uplevel [list set foo_ns::x $param]
}
}
% bar 123
can't read "param": no such variable
------------------------------- ------------
% proc foo {param} {
set ::foo_ns::x $param
}
% foo 123
can't set "::foo_ns::x": parent namespace doesn't exist
你能描述一下它是什麼,你要完成,而不是隻顯示代碼,不是嗎? – RHSeeger 2009-10-13 17:59:27
'uplevel [list set foo_ns :: x $ param]' – 2009-10-13 17:59:42
它對我不起作用(tclsh8.4)。 %觸發杆{PARAM} { 命名空間的eval foo_ns { uplevel [列表集合foo_ns :: X $ PARAM] } } %條123 不能讀取 「參數」:沒有這樣的可變 – name 2009-10-14 11:16:35