空合運算符
空合運算符(a??b)將對可選類型a進行空判斷,如果a包含一個值就進行解封,否則就返回一個默認值b。表達式a必須是Optional類型。默認值b的類型必須要和a存儲值的類型保持一致。
空合運算符是對以下代碼的簡短表達方法:
a != nil ? a! : b
上述代碼使用了三目運算符。當可選類型a的值不爲空時,進行牽制解封(a!),訪問a中的值;反之返回默認值b。無疑空合運算符(??)提供了一種更爲優雅的方式去封裝條件判斷和解封兩種行爲,顯得簡潔以及更具可讀性。
下面就是採用空合運算符例子:
let defaultColorName = "red"
var userDefinedColorName: String?
var colorNameToUse = userDefinedColorName ?? defaultColorName
userDefinedColorName變量被定義爲一個可選的String類型,默認值爲nil。由於userDefinedColorName是一個可選類型,我們可以使用空合運算符去判斷其值。在上一個例子中,通過空合運算符爲一個名爲colorNameToUse的變量賦予一個字符串類型的初始值。由於userDefinedColorName值爲空,因此表達式userDefinedColorName??defaultColorName返回defaultColorName的值,即red。如果userDefinedColorName非空,那麼將會返回非空的數據。
區間運算符
閉區間運算符
for index in 1...5{
print("\(index) * 5 = \(index * 5)")
}
半開區間運算符
for index in 1..<5{
print("\(index) * 5 = \(index * 5)")
}