2024 Clojure 状态调查! 上分享您的观点。

欢迎!请参阅 关于 页面了解更多关于这是如何工作的信息。

0 投票
文档
已关闭

get 的实现检查以检查

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

get 的文档字符串目前读作

"返回映射到键的值,如果键不存在,则返回 not-found 或 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 集合(我没有审查过,但毫无疑问,这在一些特殊情况下隐式使用),以及特殊处理的情况,即字符串和数组。例如,对于措辞,我会指出 countnth,它们都很奇怪。

因此,可能的一个句子是:“get 也可以用于集合以返回包含的值,以及字符串和数组,以通过索引返回值。”

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

0 投票

评论由:daveliepmann 提出

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

是否可以把重新措辞作为一个单独的问题来提?目前,“映射到的值”的指代不明确。我同意它难以理解。

0 投票

评论者:alexmiller

(链接:~daveliepmann) 不感谢

0 投票

评论者:plexus

附加了新的补丁。

0 投票

评论者:alexmiller

稍作修改文档字符串的添加

0 投票
...