(use 'korma.db)
和(:use korma.db)
之间有什么区别?
从功能上来说,他们似乎做同样的事情,但看起来它是一个函数调用而另一个是取消引用地图?为什么两种写作方式以及它们最终如何做同样的事情?
非常感谢!
答案 0 :(得分:5)
(:use ...)
表单是传递给ns的指令,而不是地图的解引用。 ns是一个宏,因此ns形式的内容不会以标准方式进行评估。 ns形式的:use指令导致ns调用(使用...)。
由于“use”会对您调用它的ns中所做的所有评估产生影响,因此在声明命名空间的上下文中指定它是有意义的,而不是在一个代码中的其他位置随机调用它。