【问题标题】:find all procs of a namespace in Tcl在 Tcl 中查找命名空间的所有过程
【发布时间】:2015-10-29 13:26:39
【问题描述】:

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

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 }

谢谢。

【问题讨论】:

    标签: namespaces tcl introspection proc


    【解决方案1】:

    info procs 命令可以被告知要在哪个命名空间中查找:

    info procs ::foo::*
    

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

    【讨论】:

    • 即:lmap procname [info procs ::foo::*] {namespace tail $procname}.
    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2021-04-24
    相关资源
    最近更新 更多