31

Clojure には、デフォルト値を定義する次のような行があります。

(def *http-port* 8080)

*http-port*これらの種類の値を構成単位に形式化することにしました。この値をまだ参照している場所を見つけて、新しい値を使用するように変更できるように、値を未定義にしたいと思います。つまり、値を別の場所に移動することでリファクタリングを行っています。

私がこれを行ってきた方法は、スライムを終了してスライム セッションを再開することです。Maven のコンパイル フェーズ中に、このようなエラーが検出され、一度に 1 つの参照を見つけて修正できます。次に、エラーを修正し、すすぎを洗い、繰り返します。これは明らかにイライラします。

スライムセッションに接続しているときにこれを行うにはどうすればよいですか?

4

1 に答える 1

41

私があなたを正しく理解ns-unmapしているなら、あなたが望むことをするべきです:

user=> foo
java.lang.Exception: Unable to resolve symbol: foo in this context (NO_SOURCE_FILE:1)
user=> (def foo 1)
#'user/foo
user=> foo
1
user=> (ns-unmap (find-ns 'user) 'foo)
nil
user=> foo
java.lang.Exception: Unable to resolve symbol: foo in this context (NO_SOURCE_FILE:1)
于 2010-11-17T20:20:29.607 に答える