2024年Clojure调查问卷中分享您的想法!

欢迎!请参阅关于页面,了解更多此工作原理的信息。

0
文档
封闭

get的实现在以下顺序检查

  • ILookup
  • nil
  • Map
  • IPersistentSet
  • String或Java数组

get的文档字符串目前的读数是

"返回映射到键的值,如果键不存在则返回not-found或nil。"

如果知道Clojure的数据模型,可以合理推断此操作适用于map和相关数据。但其在集合、字符串和数组上工作并不明显,因此提及这一点将是有帮助的。

补丁: clj-2249-3.patch

关闭注记: 已修复在1.11.0-alpha3中

7 个答案

0

评论者:plexus

我尽量保持简洁的风格,欢迎对措辞提出建议。我还稍微修改了第一句,因为我觉得很难理解,但这是一种无关的改变,如果更喜欢可以撤销。

0

评论者:alexmiller

我会把第一句保持原样。

这些集合操作在简洁地表达意图的同时,还要涵盖特殊情况(通常与Java类型相关)。我认为这里的意图是涵盖“关联数据结构”的查找,这包括Clojure的map、记录、向量、Java的map以及其他不那么明显的东西,如奇特的ILookup实现。

对我来说,不那么明显的是:Clojure集合(我没有审查,但无疑这在很多特殊情况下被隐式使用)和特殊的Java情况,即字符串和数组。例如,我可以提到`count`和`nth`,它们很奇怪。

所以也许可以这样写:“`get`方法也适用于集合来返回包含的值,以及字符串和数组中的按索引的值。”?

顺便说一句,我们还需要在规范中回答这些问题。我预计规范核心函数的行为将推动更多这些复杂问题的出现。

0

评论由:daveliepmann发表

>我会保留第一句话不变。

是否欢迎对其进行修改以在单独的问题中提出?目前,“映射到该值”的参照是不明确的。我同意这是难以理解的。

0

评论者:alexmiller

(链接:~daveliepmann) 不,谢谢

0

评论者:plexus

附加了新的补丁。

0

评论者:alexmiller

稍微重写了文档字符串的添加。

0
参考:https://clojure.atlassian.net/browse/CLJ-2249(由plexus报告)
...