台北市市長柯文哲曾經說過:「對的事情做,不對的事情不要做」;
同樣的,在寫程式時總是充斥著各種判斷,在 swift 中除了常見的 if 之外還有另一個 guard 可以使用
在 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 正如其名「守衛」一樣,只有為 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
當然每個人的習慣可能不一樣,大家可以視情況選擇習慣的方式去使用