以下是http://www.braveclojure.com/的引用:
Clojure使用布尔运算符
or
和and
。or
返回第一个truthy值或最后一个值。and
返回第一个falsey值,如果没有值为false,则返回最后一个truthy值。
为什么要在语言中构建类似的东西?你经常遇到一些用例吗?
答案 0 :(得分:1)
它与其他语言略有不同,但有时对于默认值很方便。例如:
(defn print-it [x]
(println (or x :unknown)))
> (print-it 5)
5
> (print-it "hi")
hi
> (print-it false)
:unknown
> (print-it nil)
:unknown
因此,对于5
或"hi"
这样的正常值,or
表达式的结果是提供的值。如果值为nil
(或false
),则会返回默认值:unknown
。