欢迎!请查看 关于 页面以获取更多关于此的工作方式的信息。
根据 doseq 的文档字符串,以下应该返回 nil。
nil
user> (doseq [] "not nil") "not nil"
评论者:admay
我认为这解决了这个问题。
如果 (seq exprs) 是 nil,则会执行 (do ...),但该 do 的返回值不一定是 nil,如果你的主体中的某物不会返回 nil。
评论者:mfikes
鉴于文档字符串指出绑定和过滤与 "for" 相同,{{doseq}} 甚至有针对这种情况的代码,这是奇怪的。因为 {{for}} 需要一个或多个绑定形式,所以提出了一个问题:{{(doseq [] "not nil")}} 是否是合法的程序。
评论者:alexmiller
测试?
这里是一些测试!我认为这些适合于doseq的使用场景。我选择与dotimes类似的测试,因为它们非常相似。
doseq
dotimes
我选择删除原始测试中的println,改为使用identity。这样似乎更合适,以免测试打印输出中出现随机的'foo'。
println
identity