1

私の担当者では、関数を持つ1つのファイルからnsをロードしましたparse。したがって(use 'demo.one)、replに入力すると正常に動作します。

これで、同じ名前の関数を持つ別のnsができました。この`(use' demo.two)と入力すると、エラーが発生します。

両方のnsで関数名が衝突するのを防ぐにはどうすればよいですか?上記では、2番目のnsからの関数のみを使用したいと思います。

ありがとう

4

2 に答える 2

2

require名前空間をingしてから、関数呼び出しを完全に修飾することで、衝突を回避できます。

例えば

(require 'demo.two)
(demo.two/parse "foo")
于 2013-03-21T07:17:14.477 に答える
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
于 2013-03-21T09:01:59.677 に答える