在 Tcl 中查找命名空间的所有过程

find all procs of a namespace in Tcl

假设我有一个命名空间。我想找到所有命名空间过程。 例如, 让我们说我有这个代码:

namespace eval foo { 
   proc me {} { puts "yey!" }
   proc moo {} { puts "ney!" }
}
puts [ getAllNamespaceProcs foo ] ; # getAllNamespaceProcs is what I do not know how to do

这应该产生:

> { me moo }

谢谢。

可以告诉 info procs 命令要查找的名称空间:

info procs ::foo::*

这将产生 ::foo::me ::foo::moo(或者反过来;lsort 如果你关心的话)你可以过滤它(例如,使用 lmapnamespace tail ) 如果你想得到你提到的结果。