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

欢迎!请参阅关于页面以了解更多关于如何使用本站的信息。

0
Clojure

根据 doseq 的文档描述,以下应该返回 nil

user> (doseq [] "not nil") "not nil"

6 条答案

0

评论者:admay

我认为这修复了这个问题。

由于 (seq exprs) 返回 null 时会运行 (do ...),但如果你的代码块不会返回 null,那么该 do 的返回值不一定为 null。

0

评论者:mfikes

根据 docstring 的指示,{{doseq}} 即使有针对此情况的代码,这也是个奇怪的情况,因为 docstring 表示绑定和过滤由 "for" 提供的。鉴于 "for" 需要一个或多个绑定形式,这引发了是否 {{(doseq [] "not nil")}} 是有效程序的问题。

0

评论者:alexmiller

测试?

0

评论者:admay

这里有几个测试!我认为这些对 doseq 的使用案例是合适的。我只是选择了与 doseq 类似的测试。

0
by

评论者:admay

我从原始测试中移除了println而选择identity,这样看起来更合适,这样你就不需要在测试输出中有随机的'foo'。

0
by
参考资料:[https://clojure.atlassian.net/browse/CLJ-2283](https://clojure.atlassian.net/browse/CLJ-2283)(由ambrosebs报告)
...