如果我在其中加载带有(ns my-namespace)的文件,为什么不切换我当前的名称空间?

时间:2011-02-16 23:13:27

标签: clojure

我有一个像这样的文件

(ns boston.core)

如果我来自REPL的(load "boston/core"),我的*ns*不会更改为boston,而是user。这是为什么?

1 个答案:

答案 0 :(得分:5)

这是因为load只加载指定的文件(进入boston.core命名空间,如文件顶部所指定)。它对REPL中的当前名称空间没有任何作用。

如果您还想在REPL中切换命名空间以使用刚刚加载的内容,则需要执行以下操作:

(load "boston/core")
(ns boston.core)

请注意,“boston / core”有斜杠,因为它引用文件资源,而名称空间本身使用点作为分隔符。