欢迎!请访问 关于 页面以获取更多关于此如何操作的详细信息。
根据 doseq 的文档字符串,以下应该返回 nil。
nil
user> (doseq [] "not nil") "not nil"
评论由:admay 提供
我认为这解决了这个问题。
有一个 (do ...) 框在实际是 nil 时会运行,但如果你主体中的代码不会返回 nil,那这个 do 框的返回值不一定会是 nil。
(do ...)
do
评论由:mfikes 提供
鉴于文档字符串表示绑定和过滤与非 "for" 提供的方式相同,{{doseq}} 在此类情况 下甚至有代码,这是很奇怪的。因为 {{for}} 需要一个或多个绑定表达式,所以 {{(doseq [] "not nil")}} 是否是一个有效的程序引起疑问。
评论由:alexmiller 提供
测试?
这里有一些测试!我认为它们适合应用于doseq。我选择了类似dotimes的测试,因为它们很相似。
doseq
dotimes
我从原始测试中删除了println,改为使用identity。这似乎更为合适,以免在测试打印输出中出现随机的'foo'。
println
identity