特定のメタデータを変数に追加したとします。
(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}
次に、それを含むすべての変数 (さまざまな名前空間にまたがる) を検索したいと思います。出来ますか?
これが理由です。私のアプリは、起動時に初期化する必要があるいくつかのモジュールで構成されています。新しいモジュールを追加したり、既存のものを削除したりできます (もちろん、実行時ではありません)。モジュールの詳細を知らなくても、その初期化子を呼び出す必要があります。イニシャライザにメタデータを追加し、それをすべて調べて呼び出すことを考えています。
もっと良い方法があれば知りたいです。