【发布时间】:2015-01-01 19:16:00
【问题描述】:
我遇到了(:refer-clojure :exclude [read]) 的问题。我的设置如下:
我有一个文件foo.clj,它是:
(ns foo.core)
(load "foo_bar")
然后我有一个文件bar.clj,它是:
(ns foo.core
(:refer-clojure :exclude [read]))
(defn read [])
在我的应用程序中,我确实在多个文件中拆分了一个命名空间。这就是为什么我在作为入口点的foo.clj 文件中有一系列(load) 语句。
问题是当我编译这个文件时,我仍然得到著名的错误:
警告:读取已引用:#'clojure.core/read 在命名空间:clj-osf.crud,被替换为:#'clj-osf.crud/read
我认为这不是什么大问题,但问题是当我从另一个应用程序中使用该库时,其他应用程序将无法编译并告诉我 foo.core/read 根本不存在。
我也尝试将foo.clj更改为:
(ns foo.core
(:refer-clojure :exclude [read]))
(load "foo_bar")
但同样的问题也会发生。这是 Clojure 中的错误,还是我遗漏了什么?
我正在使用 Clojure 1.6
【问题讨论】:
标签: clojure