假设我已将特定元数据添加到我的变量中:
(defn ^:run-at-startup init []
(prn "Initializing...")
:done)
(meta (var init))
; {:arglists ([]), :ns #<Namespace user>, :name init, :end-column 34,
; :run-at-startup true, :column 1, :line 5, :file "NO_SOURCE_FILE", :end-line 5}
然后我想查找包含它的所有变量(跨不同的命名空间)。是否可以?
这就是为什么。我的应用程序包含几个必须在启动时初始化的模块。可以添加新模块并删除现有模块(当然不是在运行时),并且必须在不知道模块的任何细节的情况下调用它的初始化程序。我想将元数据添加到初始化程序,然后查找并调用。
我想知道是否有更好的方法。