學過C語言的小猿們都知道,C語言中有很多的運算符:賦值運算符、算術運算符、邏輯運算符、關係運算符、條件運算符、逗號運算符、位運算符…… 運算符在代碼中發揮著極其重要的作用,Swift中也有很多的運算符,大部分與C中的運算符相似甚至相同,但也有一些改動和補充,接下來就簡單介紹一下這些與 'C...
學過C語言的小猿們都知道,C語言中有很多的運算符:賦值運算符、算術運算符、邏輯運算符、關係運算符、條件運算符、逗號運算符、位運算符……
運算符在代碼中發揮著極其重要的作用,Swift中也有很多的運算符,大部分與C中的運算符相似甚至相同,但也有一些改動和補充,接下來就簡單介紹一下這些與 'C' 不同的運算符。
一、賦值運算符
與 'C' 不同:Swift中的賦值表達式沒有返回值。
1 var num1 = 3 2 var num2 = 4 3 print(num1 += 3) // 輸出結果為 "()",賦值表達式沒有返回值
因此,賦值表達式不能作為 判斷條件 和 迴圈條件,否則系統會報錯,這也就避免了我們進行相等判斷時將 '==' 漏寫為 '='。
二、取餘運算符
與 'C' 不同:Swift中的運算符可以對浮點數取餘。
1 var 餘數 = 8 % 2.5 2 print(餘數) // 輸出結果為 "0.5"
我們可以直接將 2.5 看做整數來進行取餘運算,如下圖:
三、溢出運算符
認識一下:&+, &-, &*, ...
與 'C' 不同:C語言中好像沒有這玩意兒,Swift中沒有使用溢出運算符的 運算溢出 會導致程式崩潰。
1 var minValue = UInt8.min // UInt8 類型的最大值 2 var maxValue = UInt8.max // UInt8 類型的最小值 3 4 print(minValue) // 輸出結果為 "0" 5 print(maxValue) // 輸出結果為 "255" 6 7 //let a1 = maxValue + 1 // 程式執行到該行時崩潰 8 let a2 = maxValue &+ 1 9 print(a2) // 輸出結果為 "0" 10 11 //let b1 = minValue - 1 // 程式執行到該行時崩潰 12 let b2 = minValue &- 1 13 print(b2) // 輸出結果為 "255"
四、空合併運算符
認識一下:a ?? b
與 'C' 不同:C語言中好像沒有這玩意兒,Swift中的 空合併運算符 表示對 a 進行空判斷,如果 a包含一個值 就對 a 進行解析,否則將 b 轉化為 Optional類型 並返回。
使用條件:
1. a 必須是 Optional類型 的;
2. b的類型 必須與 a存儲值的類型 相同。
1 var aStr : String? = "aaa" 2 let bStr = "bbb" 3 var result = aStr ?? bStr 4 print(result) // 輸出結果為 "aaa" 5 6 var a : Int? // a = nil 7 let b = 4 8 print(b) // 輸出結果為 "4" 9 a = a ?? b 10 print(a) // 輸出結果為 "Optional(4)"
五、區間運算符
認識一下:閉區間運算符:a...b;開區間運算符:a..<b
與 'C' 不同:C語言中好像沒有這玩意兒,Swift中的 閉區間運算符(a...b) 相當於 a <= x <= b,開區間運算符(a..<b) 相當於 a <= x < b。
1 var num : Int 2 for i in 0...6 { 3 num = i // 該語句執行7次
4}
5 for i in 0..<6 { 6 num = i // 該語句執行6次 7 }
註:本文所有內容均基於Xcode7.2,如有不准確內容,敬請諒解!(2016-01-17)