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

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

0 投票
文档
已关闭

get 的实现检查以

  • ILookup
  • nil
  • Map
  • IPersistentSet
  • 字符串或 Java 数组

get 的文档字符串目前为

"返回与键映射的值,如果键不存在则返回未找到或 nil。"

如果了解 Clojure 的数据模型,可以合理推断它在 maps 和关联数据上工作。它在集合、字符串和数组上工作可能不太明显,但最好提及。

补丁:clj-2249-3.patch

备注:已修复在 1.11.0-alpha3 中

7 答案

0 投票

评论者:plexus

我尽量保持了相同的简洁风格,乐于接受对措辞的建议。我还微小地改变了第一句话,因为我发现很难理解,但这是一个无关的改变,如果需要我可以撤销。

0 投票

评论者:alexmiller

我会保留第一句话不变。

所有这些集合操作都很难简洁地表达意图,同时也涵盖了特殊情况(这些情况通常与 Java 类型相关)。在这里,我认为目的是涵盖“关联数据结构”中的查找,这包括了 Clojure maps、records、vectors、Java maps 以及其他不太明显的东西,如奇特的 ILookup 实现。

对我来说,那些不太直观的包含有:Clojure 集合(我尚未审核,但毫无疑问,这在许多特殊情况下都隐式使用),以及特殊的 Java 用法,即 String 和数组。关于措辞的例子,我可以指出 countnth,它们都有些奇怪。

所以,可能可以这样表达:“get 还可以用于集合,以返回包含的值,并且可以用于字符串和数组,通过索引返回值。”

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

0 投票

评论者:daveliepmann

>我会保留第一句话的原样。

将“指向的值”改为同位替代词是否得到欢迎,因为“指向的值”的指代不明确。我同意这很难理解。

0 投票

评论者:alexmiller

(链接:~daveliepmann)不了,谢谢

0 投票

评论者:plexus

附加了新的补丁。

0 投票

评论者:alexmiller

对文档字符串添加部分进行了重写

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