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

欢迎!请在 关于页面 了解更多关于这是我们如何运作的信息。

0
Clojure

我之前听说过关键词,但我不确定除了在映射的键之外它们还有什么实际的用途。关键词除了用于映射之外,还有其他用途吗?

实际上它们代表什么,有什么作用?

2 回答

+3

关键词和符号都适用于命名事物。符号将评估为它们所指向的对象,因此通常用于函数。关键词则评估为自身,因此它们是属性名称或枚举值的良好选择。

相比于符号,使用关键词作为名称的其他一些好处是它们是内部化的(在整个运行时中,特定的关键词只有一个实例被复用,因此具有相同属性的1000个映射只需要在一个内存中使用一个关键词),它们还有快速的(标识)等价性实现。

+1

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

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

无法判断什么是名称,什么是值

关键字可以让你显示什么是标签

关键字也可以用作查找函数,如

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