我想提供一个可以覆盖的默认值.我知道我可以使用三元组,如下所示:
(def foo (if (not (nil? bar)) bar baz))
Run Code Online (Sandbox Code Playgroud)
但是肯定在Clojure中有一种更惯用的方式来说"使用吧,或者如果bar是零则为baz.
有什么建议?
ber*_*eal 27
这将指派bar除非是nil或false,和baz其他.
(def foo (or bar baz))
Run Code Online (Sandbox Code Playgroud)
编辑
如果您想要nil精确检查,可以稍微优化原始代码,如下所示:
(def foo (if (nil? bar) baz bar))
Run Code Online (Sandbox Code Playgroud)
我相信,这是最短的方式,虽然不是惯用的.