大家好,我是對於 Clojure 一無所知的菜鳥小白工程師。
今天來學習控制流程中,表達式的各種返回值類型以及邏輯運算子。
click Try Clojure to start clojure!
在 Clojure 中,nil
用於表示沒有值(no values)。
我們我可以使用 nil?
這個方法來檢查一個值是否為 nil
:
(nil? 1)
; => false
(nil? nil)
; => true
nil
和 false
都用來表示邏輯上的假值,而所有其他值在邏輯上都是真值。
Truthiness
和 falsey
指的是值在布林運算中的處理方式,就像傳遞給 if
的第一個表達式:
(if "bears eat beets" ;; true
"bears beets Battlestar Galactica")
; => "bears beets Battlestar Galactica"
(if nil ;; false
"This won't be the result because nil is falsey"
"nil is falsey")
; => "nil is falsey"
在第一個例子中,字串 "bears eat beets"
被視為真值,因此 if
表達式返回 "bears beets Battlestar Galactica"
。第二個例子展示了 假值的情況。
Clojure 的相等運算子是 =
:
(= 1 1)
; => true
(= nil nil)
; => true
(= 1 2)
; => false
Clojure 使用邏輯布林運算子 or
和 and
。
or
返回第一個真值或最後一個值:
(or false nil :large_I_mean_venti :why_cant_I_just_say_large)
;; 有真值,返回第一個真值
; => :large_I_mean_venti
(or (= 0 1) (= "yes" "no"))
;; 沒有真值,返回最後一個值
; => false
(or nil) ;; 沒有真值,返回最後一個值
; => nil
and
返回第一個假值,如果沒有假值,返回最後一個真值:
(and :free_wifi :hot_coffee)
;; 沒有假值,返回最後一個真值
; => :hot_coffee
(and :feelin_super_cool nil false)
;; 有假值 (nil 和 false),返回第一個假值
; => nil