在clojure中运行跷跷板和泛音库
我想在一个项目中使用泛音和跷跷板名称空间。然而,当我加载它们时,似乎在seesaw.core和overtone.core((seesaw.core/select)(overtone.core/select))中都存在一个名为(select)的共享函数,为什么我不能在项目中同时加载这两个名称空间。我怎么能想到这个?使用在clojure中运行跷跷板和泛音库,clojure,namespaces,Clojure,Namespaces,我想在一个项目中使用泛音和跷跷板名称空间。然而,当我加载它们时,似乎在seesaw.core和overtone.core((seesaw.core/select)(overtone.core/select))中都存在一个名为(select)的共享函数,为什么我不能在项目中同时加载这两个名称空间。我怎么能想到这个?使用reference和:exclude关键字是否是一个选项?当许多教程和示例使用use函数或表单中的use子句时,在实际代码中最好不要这样做。优选形式如下: (ns foo.bar
reference
和:exclude
关键字是否是一个选项?当许多教程和示例使用use
函数或表单中的use
子句时,在实际代码中最好不要这样做。优选形式如下:
(ns foo.bar
(:require [a.something :as some]
[b.another :as a]))
(some/f)
(a/f)
函数完全不同且明确,这也使代码更易于阅读和重构-您可以清楚地指示所使用的定义来自何处。那么这是真的吗:因为use
也会加载函数(vars)的名称空间规范它使变量相互冲突,阻止命名空间正常加载,而require
dosn不这样做吗?这就是为什么它与require一起工作?