有几种叫“使用”的方法?

时间:2013-05-12 22:10:56

标签: clojure

(use 'korma.db)(:use korma.db)之间有什么区别?

从功能上来说,他们似乎做同样的事情,但看起来它是一个函数调用而另一个是取消引用地图?为什么两种写作方式以及它们最终如何做同样的事情?

非常感谢!

1 个答案:

答案 0 :(得分:5)

(:use ...)表单是传递给ns的指令,而不是地图的解引用。 ns是一个宏,因此ns形式的内容不会以标准方式进行评估。 ns形式的:use指令导致ns调用(使用...)。

由于“use”会对您调用它的ns中所做的所有评估产生影响,因此在声明命名空间的上下文中指定它是有意义的,而不是在一个代码中的其他位置随机调用它。