来自repl中两个ns冲突的相同功能

时间:2013-03-21 07:14:03

标签: clojure

在我的repl中,我从一个具有函数parse的文件中加载了ns。所以(use 'demo.one)在repl中输入时效果很好。

现在我有另一个具有相同名称功能的ns。当我输入这个`(使用'demo.two)时,它给了我一个错误。

如何阻止ns中的函数名称冲突?在上面我想使用第二个ns中的函数。

谢谢

2 个答案:

答案 0 :(得分:2)

您可以通过require命名空间来避免冲突,然后完全限定您的函数调用。

e.g。

(require 'demo.two)
(demo.two/parse "foo")

答案 1 :(得分:2)

还有一种方法可以在require个名称空间时别名,

您可以将:as:require

一起使用
(ns your.namespace
(:require [demo.one :as one])
(:require [demo.two :as two]))

(one/parse "foo") ; use the namespace demo.one parse function
(two/parse "foo") ; use the namespace demo.two parse function