swift 4.x 基本運(yùn)算符

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()

11. 運(yùn)算符的優(yōu)先級和結(jié)合性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末款青,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霍狰,更是在濱河造成了極大的恐慌抡草,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚓耽,死亡現(xiàn)場離奇詭異渠牲,居然都是意外死亡旋炒,警方通過查閱死者的電腦和手機(jī)步悠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘫镇,“玉大人鼎兽,你說我怎么就攤上這事答姥。” “怎么了谚咬?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵鹦付,是天一觀的道長。 經(jīng)常有香客問我择卦,道長敲长,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任秉继,我火速辦了婚禮祈噪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尚辑。我一直安慰自己辑鲤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布杠茬。 她就那樣靜靜地躺著月褥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瓢喉。 梳的紋絲不亂的頭發(fā)上宁赤,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音栓票,去河邊找鬼礁击。 笑死,一個胖子當(dāng)著我的面吹牛逗载,可吹牛的內(nèi)容都是我干的哆窿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼厉斟,長吁一口氣:“原來是場噩夢啊……” “哼挚躯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起擦秽,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤码荔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后感挥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缩搅,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年触幼,在試婚紗的時候發(fā)現(xiàn)自己被綠了硼瓣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖堂鲤,靈堂內(nèi)的尸體忽然破棺而出亿傅,到底是詐尸還是另有隱情,我是刑警寧澤瘟栖,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布葵擎,位于F島的核電站,受9級特大地震影響半哟,放射性物質(zhì)發(fā)生泄漏酬滤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一寓涨、第九天 我趴在偏房一處隱蔽的房頂上張望敏晤。 院中可真熱鬧,春花似錦缅茉、人聲如沸嘴脾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽译打。三九已至,卻和暖如春拇颅,著一層夾襖步出監(jiān)牢的瞬間奏司,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工樟插, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留韵洋,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓黄锤,卻偏偏與公主長得像搪缨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸵熟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359