欢迎!请参阅关于页面以了解更多关于如何使用本站的信息。
根据 doseq 的文档描述,以下应该返回 nil。
nil
user> (doseq [] "not nil") "not nil"
评论者:admay
我认为这修复了这个问题。
由于 (seq exprs) 返回 null 时会运行 (do ...),但如果你的代码块不会返回 null,那么该 do 的返回值不一定为 null。
(seq exprs)
(do ...)
do
评论者:mfikes
根据 docstring 的指示,{{doseq}} 即使有针对此情况的代码,这也是个奇怪的情况,因为 docstring 表示绑定和过滤由 "for" 提供的。鉴于 "for" 需要一个或多个绑定形式,这引发了是否 {{(doseq [] "not nil")}} 是有效程序的问题。
评论者:alexmiller
测试?
这里有几个测试!我认为这些对 doseq 的使用案例是合适的。我只是选择了与 doseq 类似的测试。
我从原始测试中移除了println而选择identity,这样看起来更合适,这样你就不需要在测试输出中有随机的'foo'。
println
identity