Elixir 以布林型態表示 true 和 false 這兩種值。這種型態只有兩個值:true和false。這些值可以用布林運算子(and/2、or/2、not/1)組合起來:
true_variable = true and true
false_variable = true and false
true_variable = false or true
false_variable = false or false
true_variable = not false
false_variable = not true
and/2、or/2和not/1這幾個運算子都是嚴格的布林運算子,也就是說,它們要求_第一個_引數必須是布林值。另外也有功能相同的布林運算子,可以接受任何型態的引數:&&/2、||/2和!/1。
布林運算子採用_短路求值_,意思是運算子右邊的運算式只有在需要時才會被求值。
每個運算子的優先順序都不一樣,其中not/1會比and/2和or/2先被求值。括號可以用來讓運算式中的某個部分比其他部分先求值:
not true and false
# => false
not (true and false)
# => true
撰寫會回傳布林值的函式時,按照慣例,函式名稱會以?結尾。同樣的慣例也適用於儲存布林值的變數。
def either_true?(a?, b?) do
a? or b?
end