iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

從零開始的 clojure系列 第 4

Day 4 Clojure Control Flow- if

  • 分享至 

  • xImage
  •  

前言

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

開始來學學 Clojure 的控制流程吧!

今天學習目標 if

click Try Clojure to start clojure!

if

這是 Clojure 中 if 表達式的一般結構:

(if boolean-form
  then-form
  optional-else-form)

上述的結構,可以看成 if 表達式有三個基本組成:

  1. boolean-form: 條件表達式,回傳 true or false
  2. then-form (then branch): 如果 if 條件為 true,則回傳 then-form 的結果
  3. optional-else-form (else branch): 如果 if 條件為 flase,則回傳 optional-else-form 的結果

我們來看看以下範例:

;如果 if 條件為 true,則回傳 then-form 的結果
(if true
  "By Zeus's hammer!"    
  "By Aquaman's trident!")
; => "By Zeus's hammer!"

;如果 if 條件為 flase,則回傳 optional-else-form 的結果
(if false
  "By Zeus's hammer!"
  "By Aquaman's trident!")
; => "By Aquaman's trident!"

我們也可以不寫 optionas-else-form(else branch)。

如果沒寫出 else branch,boolean-form 又為 false,則會回傳 nil

(if false
  "By Odin's Elbow!")
; => nil

每個 branch 只能有一個 form

請注意,if 表達式使用運算元的位置來關聯 then & else branches。

第一個運算元是 then 分支,第二個運算元是(optional)else 分支。因此,每個分支只能有一個表達式。

如果要處理複雜的 form,則必須用 do 包起來,我們將在下一章學習 do 的用法!

參考文章


上一篇
Day 3 Clojure Syntax - Forms
下一篇
Day 5 Clojure Control Flow- do
系列文
從零開始的 clojure23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言