2024年Clojure调查!中分享你的想法。

欢迎!有关如何使用本站的信息,请参阅关于页面。

0
Clojure

我之前学过关键字,但不确定除了在map中作为键之外,它们还有其他什么用途。除了用于map之外,关键字还有其他用途吗?

实际上它们是什么意思和做什么的?

2 答案

+3

关键字和符号都适合用于命名。符号评估为它们所引用的实体,因此通常用于函数。关键字评估为自己,所以它们是属性名称或枚举值的好选择。

与符号相比,关键字作为名称的一些其他优点是它们被内部化(特定关键字的实例在整个运行时中重复使用,因此具有相同属性的1000个map只使用一个关键字占用内存),并且它们还有快速(同一性)的相等性实现。

+1

它们是用于名称的数据类型,假设我给你这个JSON

{
  "a" : "b",
  "c": {
    "d": "e"
  }
}

无法区分什么是名称,什么是值

关键词可以让你展示标签

关键词还可以用作如查找函数

(-> data :person :address :house-number) ;; 5
...