Switch/Case
Fika Time

zonble
很多時候你不該⽤用
Boolean,⽽而是 Enum
你真的需要
這麼多 Boolean 嗎?
其實你需要的是 Enum
其實你需要的是 Enum
• ⼀一起聽只有:未連線、台長、聽眾,三種狀狀態

• ⽤用三個 Bool 會變成八種狀狀態,但有五種狀狀態不可能出現

• 如果進入這五種狀狀態,就是 Bug
⼀一個需要分段載入的畫⾯面
⽤用了了多個 Bool 表⽰示「是否初次載入」、
「是否載入中」、「是否還需要改入更更多資料」…
⼀一個需要分段載入的畫⾯面
需求往往不是⼀一次提出來來的…
• ⼀一開始沒做載入中動畫,為了了呈現載入進度,所以多⼀一個
Bool 判斷…

• ⼀一開始沒做錯誤處理理,為了了呈現錯誤,所以多⼀一個 Bool 判
斷…

• ⼀一開始沒做 Empty Set,所以多⼀一個 Bool 判斷…

• 但,放任歷史的遺跡殘留留,就會讓程式碼失控
UI Stack
•Ideal State
•Empty State
•Error State
•Partial State
•Loading State
⼀一個需要分段載入的畫⾯面
加上⼀一點 Swift 特性
⼀一個需要分段載入的畫⾯面
⼀一個需要分段載入的畫⾯面
測試 case 也好寫了了
• 測試某些 Action 是否會讓畫⾯面進入某個 State

• 測試某個 State 下 Layout 出來來的畫⾯面是否符合預期
歌曲辨識
其實就是:
Empty State
Loading State
Ideal State
Error State
什什麼可以⽤用
Switch/Case 改寫?
FizzBuzz
根據不同時段給不同圖片
Tuple

使用 switch/case 重構程式碼