by 史薇芙特 · 2023年6月4日
1、基本運算子
運算子是一種特定的符號或表示式,用來檢驗、修改或合併變數。例如,用求和運算子+可以對兩個數字進行求和(如let i = 1 + 2);稍微複雜一點的例子有邏輯與操作符&& (如if entereddoorcode && passedretinascan) ,自增長運算子 ++i (這是i=i+1的簡寫方式)
swift支援c標準庫中的大多數運算子並提公升了各自的相容性,從而可以排除常見的編碼錯誤!分配符 (=)不會返回乙個值,這樣可以防止你因粗心將賦值運算子 (=)寫成 (==)而引起的錯誤!算術符(+、 -、 *、 /、 % 等)會檢查與駁回值溢位,這樣可以避免值型別的資料在超過值型別所允許的儲存範圍時,出現意想不到的資料。你可以選擇使用swift所提供的值溢位運算子進行量化溢位的行為,詳細見溢位操作符。
與c語言不同,swift允許你對浮點數執行取餘運算。同時,swift提供兩個範圍的運算子 (a..b 和 a…b),作為表示乙個數值範圍的簡寫方式,這點c不支援。
本章節描述了swift常見運算子。高階運算子覆蓋了swift的高階操作符,並且對自定義操作符,對自定義型別操作符的實現進行了描述。
術語
操作符都是一無、二元或三元:
· 一元操作符操作單個物件 (如 -a)。一元字首操作符出現在物件前(如 !b),一元字尾操作符在物件後出現 (如 i++)。
· 二元操作符操作兩個物件(如 2 + 3),並且操作符位於兩個元素中間。
· 三元操作符對兩個物件進行操作。與c一樣,swift僅支援乙個三元操作符:三元條件操作符 (a ? b : c).
操作符所影響的值被稱為運算元。表示式1 + 2中,符號 + 是乙個二元運算子並且兩個運算元分別為 1 和 2。
2、賦值運算子
賦值運算子(a = b) 用b的值去初始化或更新a 的值
let b = 10
var a = 5
a = b
// 此刻a的值為10
假如右邊賦值的資料為多個資料的陣列,它的元素可以是一次性定義的多個常量或變數
let (x, y) = (1, 2)
// x等於1, 並且y等於2
與c及objective-c不同,swift中賦值運算子並不將自身作為乙個值進行返回。所以以下的**是不合法的:
if x = y
此特性幫助你避免因粗心將賦值運算子 (=)寫成 (==)而引起的錯誤。因為 if x = y 這樣寫是無效的。
3、數**算符
swift支援所有數字型別的四個標註運算子:
· 加法(+)
· 減法(-)
· 乘法(*)
· 除法(/)
例如:
加法運算子對字串也一樣適用,例如:
· 「hello, 」 + 「world」 // equals 「hello, world」
兩個字元,或者乙個字元乙個字串,能組合成乙個新的字串:
· let dog: character = 「dog」
· let cow: character = 「cow」
· let dogcow = dog + cow
· // dogcow is equal to 「dogcow」
餘數運算子
餘數運算子(a % b)a是b的幾倍並且返回被留下的值(叫作餘數)。
餘數運算子(%)亦稱是其他語言的乙個模數運算子。然而,其在swift裡意味著它是負數,嚴格上講,是餘數而不是模數運算。
這是餘數運算子如何工作。 要計算9% 4,你首先得求出9是4的幾倍 :
9能去除兩個4,並且餘數是1 (顯示在橙色)。
在swift中,這個將被寫成:
9 % 4 // equals
確定a % b的答案, 運算子%計算下列等式並且返回餘數作為其輸出:
a = (b × some multiplier) + remainder
some multiplier 是a裡面能包含b的最多倍數。
將9和4插入到公式:
9 = (4 × 2) + 1
同乙個方法是應用的,當計算a時的乙個負值的餘數:
· -9 % 4 // equals -1
將-9和4插入到公式:
-9 = (4 × -2) + -1
產生餘數值為-1。
b為負值時的b的符號被忽略,這意味著%b和%-b的結果是一樣的。、
浮點餘數計算
不同於c和objective-c,swift的餘數運算子也能運用於浮點數:
· 8 % 2.5 // equals 0.5
在本例中, 8用2.5來分等於3, 餘數是0.5,因此餘數為0.5。
增量和減量運算子
(自增和自減運算子)
像c一樣,swift提供乙個增量運算子(++)和減量運算子(–)作為增加或減少乙個數字變數的值的快捷方式,數值為1。 您能使用有任何整數或浮點型別的變數使用這些運算子。
· var i = 0
· ++i // i now equals 1
每當你使用 ++i ,i 的值增加1,本質上++i可以看做是i=i+1,同樣–i可以看做是i=i-1。
++和–符號可以使用作為字首算符或作為字尾運算子。++i 和 i++ 是兩個有效的方式給i的值增加1,同樣,–i和i—如是。
注意這些運算子修改i並且返回值。如果你只想要增加或減值i,您能忽略返回值。然而,如果你使用返回值,根據下列規則將是不同的根據的您是否使用了運算子的字首或字尾版本,它:
· 如果運算子在變數之前被寫,它在返回其值之前增加變數。
· 如果運算子在變數之後被寫,它在返回其值之後增加變數。
例如:· var a = 0
· let b = ++a
· // a and b are now both equal to 1
· let c = a++
· // a is now equal to 2, but c has been set to the pre-increment value of 1
在上面的例子中,let b = ++a a在返回其值之前增加,這就是為什麼a和b的新值是等於1。
然而,let c = a++ a在返回其值之後增加,這意味著c獲得a的原值1,然後a自增,a等於2。
除非你需要特定工作情況下,使用i++,在所有的情況下建議你使用++i和–,因為他們有修改i和返回結果典型的期望的工作情況。
一元減運算子
· 乙個數值前加了符號-,叫作一元減運算子:
· let three = 3
· let minusthree = -three // minusthree equals -3
· let plusthree = -minusthree // plusthree equals 3, or 「minus minus three」
一元減運算子(-)直接地被加在前面,在它起作用的值之前,不用任何空白空間。
一元加運算子
一元加運算子(+)返回它起作用的值,不做任何變動:
· let minussix = -6
· let alsominussix = +minussix // alsominussix equals -6
雖然一元加上運算子實際上不執行什麼,當你也使用一元減負數的運算子時,你能使用它提供對稱的正數。
感謝翻譯小組成員:李起攀(微博)、若晨(微博)、tiger大顧(微博)
翻譯進行中,預計4日下午更新完畢,敬請期待~
Swift中文教程 基本運算子
運算子 operator 是用於檢查 更改或組合值的特殊符號或短語。例如,加法運算子 求兩個數字的加和 用例let i 1 2 更複雜的例子包括邏輯與 logicaland 運算子 用例 if 已輸入門禁密碼 已通過視網膜掃瞄 以及自增運算子 i,後者是將 i 儲存的值加上 1 的便捷寫法。swif...
Swift 教程(二) 基本運算子
swift 支援 c 中的大多數標準運算子,有過 c 語言基礎或者其他語言基礎的都不陌生,在這就不做過多的闡述了。現在說點不一樣的東西,swift 提供了兩張 c 中沒有的區間運算子 a 區間運算子 swift 包含了兩個區間運算子,他們是表示乙個範圍的值的便捷方式。閉區間運算子 a b 定義了從 ...
Swift中文教程1
swift語言概覽 基本概念 注 這一節的 源自the swift programming language中的a swift tour。hello,world 類似於指令碼語言,下面的 即是乙個完整的swift程式。swift使用var宣告變數,let宣告常量。型別推導 swift支援型別推導 t...