Clojure中向量前的单引号有什么作用?
Clojure 代码单引号作用解答
你给出的示例代码如下:(require '[clojure.string :as str])
这里的单引号是Clojure的引用(quote) 语法糖,核心作用是阻止后续表达式被求值,具体逻辑如下:
- 若没有该单引号,Clojure解析器会尝试对
[clojure.string :as str]这个向量执行求值操作,会优先查找clojure.string符号对应的绑定值,找不到就会直接抛出运行异常 - 加上单引号后,整个向量会作为纯字面量数据直接传递给
require函数,不需要执行求值逻辑,require可以直接读取向量内的命名空间、别名配置完成对应库的加载
你也可以把单引号写法理解为quote特殊形式的简化写法,以下代码和你给出的示例完全等价:(require (quote [clojure.string :as str]))
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

