欢迎!请参阅关于页面以了解有关此工作方式的一些更多信息。
我之前了解到keywords,但我不确定除了用作maps中的key外,它们实际上还有什么用处。keywords除了在maps中使用外,还有其他用途吗?
它们实际意味着什么和能做什么呢?
Keywords和symbols都适用于命名事物。Symbols会求值出它们所引用的实体,所以通常用于函数。Keywords会求值出它们自身,因此它们是良好的属性名或枚举值的名字。
与symbols作为名字相比,keywords的一些其他好处在于它们是interned的(在运行时中,特定关键词只有一个实例会被重用,因此拥有相同属性的1000个maps仅使用一个关键词占用内存),并且它们还具有快速的(身份)相等性实现。
它们是用于表示名称的数据类型,假设我给你这个JSON
{ "a" : "b", "c": { "d": "e" } }
无法区分什么是名称,什么是值
关键字可让你标明标签
关键字也可用作查找函数,如下
(-> data :person :address :house-number) ;; 5