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