有几种叫"使用"的方法?

hur*_*wal 2 clojure

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

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

非常感谢!

noi*_*ith 5

(:use ...)形式传递到纳秒的指令,而不是地图的间接引用.ns是一个宏,因此ns形式的内容不会以标准方式计算.ns形式的:use指令导致ns调用(使用...).

由于"use"对您调用它的ns中所做的所有求值都有影响,因此在声明命名空间的上下文中指定它是有意义的,而不是在一个代码中的其他位置随机调用它.

  • use仅影响当前命名空间,但其操作与调用它的命名空间紧密相关,最好将其作为命名空间定义的一部分进行调用.真正用的是修改查找命名空间中定义的规则,那么为什么要与它修改的命名空间的定义分开呢?另外,:use通常被认为是不推荐使用的,最好使用:require with:refer参数(使用往往会使代码更难阅读,因为在定义给定函数的位置并不是很明显). (2认同)