1. 簡單賦值運(yùn)算符
2. 復(fù)合賦值運(yùn)算符
3. 比較運(yùn)算符
4. 正號和負(fù)號運(yùn)算符
5. 標(biāo)準(zhǔn)算術(shù)運(yùn)算符
6. 取余運(yùn)算符
7. 邏輯運(yùn)算符
8. 三目條件運(yùn)算符
9. 區(qū)間運(yùn)算符
區(qū)間運(yùn)算符有兩種:
(1)...
閉區(qū)間運(yùn)算符撑蚌,a...b表示[a, b]履羞。
(2)..<
半閉半開區(qū)間運(yùn)算符挂脑,a..<b表示[a, b)太闺。
幾點(diǎn)說明:
1)當(dāng)a和b都是整數(shù)時愧旦,a...b等價于a..<(b + 1)贾虽。
2)當(dāng)a等于b時足绅,a..<b表示空區(qū)間摩泪。
3)a不能大于b笆焰,否則會導(dǎo)致運(yùn)行時錯誤。
4)如果b是負(fù)數(shù)见坑,必須用小括號將其括起來嚷掠,否則會導(dǎo)致編譯錯誤捏检。
(5...8).forEach { print($0) }
// 當(dāng)a和b都是整數(shù)時,a...b等價于a..<(b + 1)
(5..<9).forEach { print($0) }
// 當(dāng)a等于b時不皆,a..<b表示空區(qū)間
(5..<5).forEach { print($0) }
// a不能大于b
// 9...8
// a不能大于b
// 9..<8
// 如果b是負(fù)數(shù)未檩,必須用小括號將其括起來
// -5...-2
// 如果b是負(fù)數(shù),必須用小括號將其括起來
// -5..<-2
// 如果b是負(fù)數(shù)粟焊,必須用小括號將其括起來
-5...(-2)
-5..<(-2)
/*
半閉半開區(qū)間運(yùn)算符在遍歷數(shù)組時比較有用冤狡,因?yàn)閿?shù)組元素的索引是從0開始的。
*/
let array = ["Swift", "Java", "Kotlin", "Objective-C"]
for i in 0..<array.count {
print("\(array[i])")
}
/*
調(diào)用區(qū)間的contains(_:)方法可以判斷區(qū)間內(nèi)是否包含參數(shù)指定的元素项棠。
*/
(5..<9).contains(8)
(5..<9).contains(9)
/*
訪問區(qū)間的isEmpty屬性可以判斷區(qū)間是否為空悲雳。
*/
(5..<9).isEmpty
(5..<5).isEmpty
/*
訪問區(qū)間的count屬性可以取得區(qū)間的元素個數(shù)。
*/
(5..<9).count
(5..<5).count
10. NilCoalescing運(yùn)算符
NilCoalescing運(yùn)算符用??表示香追,其語法格式為:a ?? b合瓢,對應(yīng)的運(yùn)算規(guī)則為:如果a為nil,返回b的值透典;如果a不為nil晴楔,返回a包裝的實(shí)際值。
因此峭咒,a ?? b等同于:a == nil ? b : a!税弃。其中,a總是可選類型凑队,b的類型必須與a包裝的實(shí)際值的類型保持一致则果。
var i: Int? = 13
i ?? 18
i = nil
i ?? 18
let defaultColor = "red"
var userDefinedColor: String?
var colorToUse: String
colorToUse = userDefinedColor ?? defaultColor
userDefinedColor = "blue"
colorToUse = userDefinedColor ?? defaultColor
/*
NilCoalescing運(yùn)算符是短路運(yùn)算符,也就是說漩氨,對于a ?? b西壮,如果a不為nil,將不再計算b叫惊。
*/
func make() -> Int {
print("函數(shù)make()被調(diào)用了")
return 18
}
// i = 5
i = nil
i ?? make()