iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0

if & Guard

台北市市長柯文哲曾經說過:「對的事情做,不對的事情不要做」;
同樣的,在寫程式時總是充斥著各種判斷,在 swift 中除了常見的 if 之外還有另一個 guard 可以使用

if...else

在 if 後方的條件成立後做下方的程式,不成立則做 else 下方的程式

let numOne = 10
let numTwo = 20
        
if numOne > numTwo {
    print("numOne is bigger")
} else {
    print("numTwo is bigger")
}

// do anything else

當 if 結束之後下面的程式會繼續執行

guard...else

guard 正如其名「守衛」一樣,只有為 true 的情況才會讓之後的程式執行

let numOne = 10
let numTwo = 20

guard numOne > numTwo else {
    print("numTwo is bigger")
    return  // else結束後必需return
}
print("numOne is bigger")

// do anything else

由於 else 結束時必須 return 所以 guard 在某些情形下可讀性會比 if 稍微更好一些

我自己是常用在一些需要攔截錯誤的情況上,範例如下:
if...else

// 資料輸入
let text = textField.text

if text == "" {
    // 如果字串為空字串
    // print("error")
} else {
    // 如果字串不為空字串
    print("text")
    
    // do anything else
}

guard...else

// 資料輸入
let text = textField.text

guard text != "" else {
    // 如果字串為空字串
    // print("error")
    return
}
// 如果字串不為空字串
print("text")
    
// do anything else

當然每個人的習慣可能不一樣,大家可以視情況選擇習慣的方式去使用


上一篇
Day3 生命週期
下一篇
Day5 函式
系列文
IOS Beginner's 30days 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言