2

ns - (ns abc.a) を持つコード ファイルがあるとします。今、repl を開始し、ns- (use-ns 'abc.a) にいます。

ファイル内のコードを変更した場合、repl で ns をリロードするにはどうすればよいですか?

ありがとう、ムルタザ

4

4 に答える 4

5

(require :reload 'abc.a)またはでコードをホットリロードできます(require :reload-all 'abc.a)。後者は必要なすべての名前空間も再読み込みしますがabc.a、前者は再読み込みのみを行いますabc.a

于 2012-07-03T08:40:42.503 に答える
3

を使用load-fileしてファイルをリロードできます。

于 2012-07-03T08:39:19.400 に答える
2

REPL で名前空間を設定すると、名前空間が定義されているファイルからコードをロードしません。ファイルからすべてのコードを実行する必要があります (最も簡単な方法はコピー アンド ペーストです)。

したがって、ファイルが次のようになっている場合:

(ns abc.a)
(def x 3)

user=>(ns abc.a)REPLで実行すると、プロンプトが表示されますabc.a=>。名前空間は変更されましたが、まだ何もありません。入力xして、定義されていないことを確認します。abc.a=>(def x 3)REPL で ns にコードをロードするのは、 を実行した後でのみです。

xその後、ファイル内の定義を変更した場合(たとえば(def x 5))、REPL に新しい定義を入力するだけで、このコードがリロードされます。

emacs を使用している場合は、この質問を読むことをお勧めします。

于 2012-07-03T08:16:15.497 に答える
2

emacs と Slime を使用している場合は、ctrl-c ctrl-l を押して現在の名前空間を再読み込みし、そこに含まれるものをすべて再読み込みできます。

于 2012-07-03T14:15:38.163 に答える