1. 程式人生 > >Swift條件判斷中的逗號

Swift條件判斷中的逗號

Swift語言中,Bool值是用來進行條件判斷的,可以進行&&以及||的操作,從而實現多個表示式共同判斷。
但是由於Swift中存在可選項繫結,或者說是用let展開可選項的原因,有些地方條件判斷中不能夠使用&&來進行處理。比如,我們要在變數hasValue確實有值,且引數個數paramCount大於0的時候,執行程式碼,一般我們可以這樣寫:

  if hasValue != nil && paramCount > 0 {
    ...
  }

但是如果我們在後續程式碼中中要使用hasValue的值的話,就不能夠只判斷hasValue是否為nil

了,而應該使用可選項繫結把值給讀出來,也就是下面的程式碼:

  if let hasValue = hasValue {
    if paramCount > 0 {
      ...
    }
  }

由於let hasValue = hasValue並不會返回一個Bool值,導致兩個條件不能夠使用&&進行判斷,這個時候,我們就要使用所謂的逗號了,也就是可以寫成:

  if let hasValue = hasValue, paramCount > 0 {
    ...
  }

這個樣子就可以滿足我們的需求,程式碼逼著上面的程式碼少了一層判斷,看起來會更加友好。特別是當我們需要可選項繫結多個變數時,這樣寫會更加的方便。如:

  if let a = a, let b = b, let c = c, let d = d, e < 0, f > 0 {
    ...
  }

如果不使用,進行分割,而是一個個判斷的話,將會進入多重判斷的坑裡,讓程式碼臃腫不堪。

總的來說,條件判斷中逗號的作用類似於&&,但是它除了連線Bool值,也可以用來連線可選項繫結的判斷。