swift運(yùn)算對(duì)運(yùn)算符做了重載,類似java你可以有“我是前部分字符串” + “我是后部分字符串”來(lái)拼接字符串,swift也一樣
+, -, *, /, %, =, ==, ===, ..<, ..., ?:, >, <, ??
1.+ 號(hào)除了執(zhí)行加法外,其他類型還對(duì)其進(jìn)行了重載操作,例如String類型(也是值類型,不是對(duì)象類型)重載 + 號(hào),是的可以對(duì)字符串進(jìn)行拼接;數(shù)組對(duì)其進(jìn)行重載,使其可以對(duì)同類型數(shù)組進(jìn)行合并
2. - 號(hào)還是一樣,負(fù)號(hào)操作和減法操作,負(fù)號(hào)操作可以理解為減法操作中的 0 - ,只是省略了0
組合賦值主要是和 = 號(hào)結(jié)合
3.空和運(yùn)算符,a ?? b,如果a為空,則返回默認(rèn)的b,不為空則解封,并返回解封后的a。這個(gè)和 ?的兩個(gè)用法有關(guān)第一個(gè)問(wèn)號(hào)判斷是否存在值,存在則執(zhí)行第二個(gè)問(wèn)號(hào)操作。第二個(gè)問(wèn)號(hào)進(jìn)行可選性解析。這個(gè)用來(lái)進(jìn)行三目運(yùn)算的替代,很便捷

4.區(qū)間運(yùn)算,有?... 閉區(qū)間和?..< 開(kāi)區(qū)間??
0...5即從0到5,包括5
0..<5即從0到5,不包含5,開(kāi)區(qū)間用在數(shù)組的遍歷很方便
變種用法有:
?...2 即從最低區(qū)間值一直到2,包含2
2... 從2包含2一直到最高區(qū)間值
..<2從最低區(qū)間值一直到2,不包含2
5.邏輯運(yùn)算
! &&? ||,這個(gè)和OC一樣,注意一點(diǎn)是swift中if判斷時(shí)多個(gè)條件的話,逗號(hào) ,隔開(kāi)和 && 意思一樣,表明同時(shí)滿足要求才可行
總而言之,使用括號(hào)來(lái)進(jìn)行運(yùn)算優(yōu)先級(jí)時(shí)一個(gè)非常好的編碼習(xí)慣,可讀性更好。
20180412