当前位置:  开发笔记 > 编程语言 > 正文

为什么在"使用"(在clojure中)使用围绕向量的单引号?

如何解决《为什么在"使用"(在clojure中)使用围绕向量的单引号?》经验,为你挑选了1个好方法。

当我使用一些长函数名称时,我使用了这个use表单,如下所示:

(use '[clojure.string :as str])

但我不知道为什么在向量中添加单引号 ',所以我试图弄清楚它的类型:

(type '[clojure.string :as str])
;=> clojure.lang.PersistentVector

简化示例:

(type ["hello"])
;=> clojure.lang.PersistentVector

(type '["hello"])
;=> clojure.lang.PersistentVector

似乎单引号没有改变任何东西,任何人都可以解释它在use表单中的用法吗?



1> Magos..:

目的是引用符号.这样它们将被视为符号,并且use可以将这些符号作为命名空间来加载和拉入当前符号.您希望避免对符号进行默认处理,该符号将其解析为Var的名称并使用该Var的值.你也可以这样做

(use ['clojure.string :as 'str])

但这涉及一些不必要的打字; 引用整个向量会让你不太可能忘记任何事情.特别是如果你正在做的任何事情:only,:refer或者类似的关键字参数.

旁白:ns不需要这个,因为作为一个宏,它可以控制对其参数的评估 - 函数类似于require并且use在它们自己运行之前读取和评估它们的所有参数.这是为什么ns通常优先于这些功能的部分原因.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有