我想写一个可以像这样使用的函数:
my_function {
cmdA argA_1 argA_2
cmdB argB_1 argB_2
cmdC argC_1 argC_2
}
我想通过使用实现 my_function namespace eval ::my_internal_namespace [uplevel ...]
,可能在一个循环中。虽然这不是立即很有用,但我稍后会对其进行增强以做更多的事情uplevel
。
my_internal_namespace
将被定义为:
namespace eval my_internal_namespace {
proc cmdA { args } {
puts "$args"
}
proc cmdB { args } {
puts "$args"
}
proc cmdC { args } {
puts "$args"
}
}
我认为这种技术最终将允许 my_function 的调用者从 my_function 中声明他们想要的一些事实和行为,其中这些事实和行为的参数在调用者的上下文中进行评估,例如,获取变量的值或在调用者的命名空间和范围内执行其他替换。