運算符是編程語言不可缺乏的一個部分,Swift中除了支持C中的運算符外,還提供了一些更增強大的運算符功能,例如取餘符%能夠用來計算浮點數,另外新增了兩種範圍運算符。Swift中有3類運算符:編程
1.一元運算符編程語言
運算符做用於一個操做數,能夠出如今操做數前或者操做數後。spa
2.二元運算符設計
運算符做用於兩個操做數,出如今兩個操做數中間。code
3.三元運算符開發
運算符做用於三個操做數間。字符串
賦值運算符用=符號表示,用於初始化或者更新一個量值,示例以下:編譯器
//將字符串「hello world」 賦值給變量str var str = "Hello, world" //更新變量str的值 str = "new value"
若是賦值運算符的右邊是一個元組,其也能夠將元組進行分解賦值,示例以下:io
//對元組進行分解賦值 var (x,y) = (1,2)
與C與Objective-C不一樣,Swift的中賦值運算符並不會返回一個值,不少初學者在進行if語句的使用時,常常會犯的一個錯誤就是將賦值運算符當作等於運算符來使用,這些錯誤在Swift語言中都將被避免,由於若是在if語句的判斷條件中使用的是賦值運算符,編譯器將會直接拋出錯誤。編譯
Swift中支持的基礎的算數運算符有7種,加(+)、減(-)、乘(*)、除(/)、取餘(%)、正號(+)、負號(-)。Sring類型的數據是支持經過+運算符來進行拼接的,示例以下:
var newStr = "hello"+"world"
Swift中的%運算符比Objective-C更增強大,其除了支持整數的取餘操做外,還能夠支持浮點數的取餘操做,示例以下:
var value1 = 10%3 //餘數1 var value2 = -10%3 //餘數-1 var value3 = 10%4.5 //餘數1 var value4 = -10%4.5 //餘數-1
對於正號和負號操做符也被稱爲一元加操做符與一元減操做符,一元減操做符會改變數據的正負性,一元加操做符只會返回數值自己,並無作任何操做,示例以下:
var tmp = -3; +tmp//-3 -tmp//3
Swift中提供了將一個算術運算符與賦值運算符結合使用的複合賦值功能,示例以下:
tmp+=3 //tmp = tmp +3 tmp-=3 //tmp = tmp -3 tmp*=3 //tmp = tmp *3 tmp/=3 //tmp = tmp /3 tmp%=3 //tmp = tmp %3
Swift支持Objective-C中全部的比較運算符,比較運算符將會返回一個Bool類型的值:
1==2 //等於比較 1<2 //小於比較 1>2 //大於比較 1 != 2 //不等於比較 1<=2 //小於等於比較 1>=2 //大於等於比較
除了上面列舉出的6種比較運算符外,Swift中還提供了兩個特殊的比較運算符===和!==,這兩個比較運算符用於比較引用是否相同。
Swift中的元組也能夠進行比較,可是其有兩個前提須要注意:
1.元組中元素的個數相同且對應位置的元素類型相同。
2.元組中的元素能夠進行比較操做。
當元組進行比較時,按元素順序進行逐個比較,直道某個元素比較出結果後做爲元組的比較結果。
(1,"123")>(0,"234") //true (1,"123")>(1,"456") //false
三元運算符能夠理解爲一個簡寫的if else 語句,示例以下:
var a = 1>2 ? 1:2 //若是1>2成立 a=1 a=2
空聚合運算符也是Swift語言中獨有的一個運算符,其設計的思路是基於更加方便的使用Optional值的目的。對於Optional類型的值,開發者通常會須要使用?進行可選拆包或者!進行強制拆包來獲取其原始值,空聚合運算符??提供了更加使用的方式,示例以下:
var Op1:String? var Op2:String? = "123" //這個表達式將返回Op2 其意義是 若是Op1不爲nil,則對其進行強制拆包 將值返回,若是爲nil,則返回Op2 var realStr = Op1 ?? Op2 //上面的表達式和下面這個表達式意義相同 Op1 != nil ? Op1! : Op2
Swift中還提供了區間運算符,在for-in循環中,區間運算符會被常常使用到,示例以下:
//a...b爲閉區間寫法 for index in 0...3 { print(index) } //a..<b爲左閉右開區間 for index in 0..<3 { print(index) }
Swift中支持與&&、或||、非!三種邏輯運算符,邏輯運算符只能操做Bool值,示例以下:
var one = true var two = false one&&two //false one||two //true !one //false
邏輯運算符在複合使用時,最好使用小括號進行模塊分隔,加強可讀性。
專一技術,熱愛生活,交流技術,也作朋友。
——琿少 QQ羣:203317592