1

コンテクスト

これはinit.cljの内容です

(ns init)

(defn get-hotswap []
  (filter #(= (ns-name %) 'hotswap) (all-ns)))

(let [x (get-hotswap)]
  (let [old-ns *ns*]
    (if (empty? x)
      (do
        (create-ns 'hotswap)
        (in-ns 'hotswap)
        (def global-kv-store (clojure.core/atom {}))
        (in-ns (ns-name old-ns)))
      (println "Found Hotswap"))))

今。hotswap / global-kv-storeは存在しませんが、init/global-kv-storeは存在します。

質問

これを修正するにはどうすればよいですか?できるようになりたい

  • 新しい名前空間のホットスワップを作成する
  • 次に、その中に新しい変数global-kv-storeを定義します

ありがとう!

4

1 に答える 1

1

あなたはこれを試すことができます:

(if-not (find-ns 'hotswap)
  (intern (create-ns 'hotswap) 'global-kv-store (atom {})))
于 2012-05-26T07:24:39.543 に答える