2016-07-15 109 views
0

这里引用从http://www.braveclojure.com/布尔运算符(和,或)用Clojure

Clojure的使用布尔运算符orandor返回第一个真值或最后一个值。 and返回第一个错误值,或者如果没有错误值,则返回最后一个错误值。

为什么你在语言中构建类似的东西?你多久会遇到一些用例?

+2

实际和习惯用语所有的时间。 –

+0

建议您将最后一段改写为* *它们的用途是什么?*。 – Thumbnail

回答

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