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

欢迎!请查看关于页面以了解有关此页面更多信息。

0
Docs
已关闭

get实现检查的目的是

  • ILookup
  • nil
  • 映射
  • IPersistentSet
  • 字符串或Java数组

get的文档字符串目前读作

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

如果知道Clojure的数据模型,可以合理推断这适用于映射和相关数据。它对于集合、字符串和数组的适用性不那么明显,提及这一点将会有所帮助。

补丁: clj-2249-3.patch

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

7 答案

0

由plexus发表的评论

我已经尽量保持同样的简洁风格,很高兴接受对措辞的建议。我还稍微修改了第一句话,因为我发现很难理解,但这种修改与主旨无关,如果需要我可以恢复它。

0

由alexmiller发表的评论

我会保留第一句话不变。

所有这些集合操作在简洁地陈述意图的同时,还涵盖了特殊案例(通常与Java类型相关)。我认为这里的意图是涵盖“关联数据结构”的查找,这包括Clojure的map、record、vector、Java的map以及其他不那么明显的东西,如奇怪的ILookup实现。

对我来说,非显而易见的包括:Clojure的集合(尚未审查,但无疑在许多特殊情况下隐式使用),以及Java的特殊情况,即字符串和数组。例如,我会提到countnth,它们同样有些奇怪。

所以,可能这样一句话:“get不仅可以对集合进行查找以返回包含的值,还可以对字符串和数组进行索引查找。”

我们在规范中也需要回答这些问题。我预计规范核心函数的行为会推动更多这样棘手的问题。

0

评论者:daveliepmann

>我将保留第一句原样。

对重述的需求会在自己的问题中欢迎吗?目前,“映射到的值”的指代是不清晰的。我同意这很难理解。

0

由alexmiller发表的评论

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

0

由plexus发表的评论

附加了新的补丁。

0

由alexmiller发表的评论

对docstring的添加进行了一些修改。

0
...