原生 OO 中 itcl::find 的任何替代品?

Any substitute for itcl::find in native OO?

原生 OO 中是否有 itc::find 的替代品。

我需要删除特定命名空间中的所有 类 我的代码运行如下:

foreach class [::itcl::find classes ::MYNAMESPACE::*] {catch {::itcl::delete class $class}}

如何在本机 OO 中执行此操作?

好的 - 执行以下操作:

 foreach class [info class instances oo::class ::MYNAMESPACE::*] {
      catch {$class destroy}
 }

最简单的方法是让你所有的 classes subclass 成为一个不需要做任何事情的虚拟 class,比如说 MYNAMESPACE::DeletionToken .然后,用 MYNAMESPACE::DeletionToken destroy 删除那个虚拟 class;所有的subclasses和instance都会被自动干干净净。这也适用于 mixins 和 metaclasses。还要记住,TclOO 支持多重继承,所以 none 这需要打扰你现有的代码。