gpt4 book ai didi

clojure - 在 Clojure 中使用关键字作为映射中的键有什么好处?

转载 作者:行者123 更新时间:2023-12-02 12:44:30 26 4
gpt4 key购买 nike

我注意到,在 Clojure 中,通常使用关键字作为映射中的键,而在没有此类概念的其他语言中,通常使用字符串。

使用关键字而不是字符串或其他类型有什么好处?

最佳答案

  1. 关键字是一种符号类型,在语义上与字符串不同,并且可表示的值范围较小。 They can be namespaced, there are checks for legal use of namespaces and such, and hence users can be more confident in EDN keyword keys meaning what they expect比例如具有等效字符串键的 JSON。
  2. 关键字是固定的,因此关键字的所有实例都引用相同的对象。这对于例如平等检查。
  3. 关键字是函数,其作用类似于 get,其自身作为关键参数。这对于“我想要所有这些人的电话号码”之类的情况很方便 - (map :phone-no people)(map #(get % "phone-no")人)

关键字对于 let 和其他解构工具也很方便:

(let[{:keys [foo bar]} {:foo 1 :bar 30}]
(+ foo bar)) ;;=>31

但这实际上也适用于使用不太常见的 :strs 解构的字符串键。

关于clojure - 在 Clojure 中使用关键字作为映射中的键有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34249647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com