iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

從零開始的 clojure系列 第 7

Day 7 Clojure - nil, true, false, Truthiness, Equality, and Boolean Expressions

  • 分享至 

  • xImage
  •  

前言

大家好,我是對於 Clojure 一無所知的菜鳥小白工程師。

今天來學習控制流程中,表達式的各種返回值類型以及邏輯運算子。

click Try Clojure to start clojure!

nil

在 Clojure 中,nil 用於表示沒有值(no values)。

我們我可以使用 nil? 這個方法來檢查一個值是否為 nil

(nil? 1)
; => false

(nil? nil)
; => true

nilfalse 都用來表示邏輯上的假值,而所有其他值在邏輯上都是真值。

true & false

Truthinessfalsey 指的是值在布林運算中的處理方式,就像傳遞給 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"。第二個例子展示了 假值的情況。

Equality (=)

Clojure 的相等運算子是 =

(= 1 1)
; => true

(= nil nil)
; => true

(= 1 2)
; => false

Boolean Expressions (or & and)

Clojure 使用邏輯布林運算子 orand

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

參考文章


上一篇
Day 6 Clojure Control Flow- when
下一篇
Day 8 Clojure - Naming Values with def
系列文
從零開始的 clojure23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言