基本運算子 Swift學習筆記(五)

2021-06-22 12:50:43 字數 2172 閱讀 4538

注:本文為自己學習the swift programming language的筆記,其中的例子為引用原書和其他博文或自己原創的。每個例子都會批註一些實踐過程中的經驗或思考總結。

1.術語

swift的運算子分為一元、二元和三元。

一元運算子:字首一元運算子:+正號,-負號,!取反,++字首加,--字首減等,和字尾一元運算子:++字尾加,--字尾減等。

二元運算子:=賦值運算子,二元算術運算子:+加,-減,*乘,/除,%求餘數等,二元邏輯運算子:&&邏輯與,||邏輯或等,二元關係運算子:>大於,<=小於等於,==等於,!=不等於等。

三元運算子:swift有唯一三元運算子,條件運算子:a ? b : c。

2. 賦值

賦值符號=區別於關係等於==,配合元組賦值運算可以實現多個不同型別元素在一條語句中完成賦值。

swift的賦值符號不同於object-c和c等,它不返回任何值,因而不能用於條件判斷。

復合賦值符+=、-=、*=、/=:a q= b 等價於 a = a q b,其中q為四則運算。

3. 算術運算子

3.1基本算術運算子

四則運算+、-、*、/, 需要注意以下幾點:

(1) /除法作用於整數是執行整除運算:

let a : int = 3 / 5

println("[a] = \(a)")

//prints [a] = 0

(2)+加法可以作用於string型別和character型別任意兩兩組合實現字串拼接,返回值是string型別。

3.2求餘運算子

swift不僅支援整型求餘,還支援浮點型求餘:

println(8.5 % 2.5)

//prints 1.0

3.3自增減運算子

swift自增減運算子在支援整型的基礎上還支援浮點型變數。

自增減運算子在實現變數加1或減1的同時返回乙個值,字首++或--是返回完成自增減之後的值,而字尾++或--是返回完成自增減之前的值。

var b = 8.5

let c = b++

let d = ++b

println("b = \(b),c = \(c),d = \(d)")

//prints b = 10.5,c = 8.5,d = 10.5

3.4正負運算子

正號運算子作用在正數或負數上都不改變其值,相當於什麼也沒做。

負號運算子相當於取相反數,遵守負負抵消的原則。

4. 比較運算子

swift除了支援常見的七種比較運算子,還提供===和!==符號用於比較兩個物件是否指向同乙個物件的例項。

5. 三元條件運算子

swift三元運算子和其普通用法一樣,相當於乙個if-else語句:

let numofchapter = 20

let (beverb,pluralsuffix) = numofchapter > 1 ? ("are","s") : ("s","")

println("there \(beverb) \(numofchapter) chapter\(pluralsuffix) in this book")

//prints there are 20 chapters in this book

6. 區間運算子

swift引入區間運算子來簡化表達取值範圍。

閉區間運算子是三個點 ... ,a...b表示從a到b包括a、b的取值。

半開半閉區間運算子是兩個點 .. ,a..b表示從a到b包括a但不包括b的取值。

區間運算子主要用於for迴圈的簡化書寫:

for index in 1...5
7. 邏輯運算子

swift的邏輯與或非分別為&&、||、!,注意在混合邏輯表示式中與的優先順序高於或,但最好新增圓括號來區別優先順序,增強閱讀性。

Swift學習筆記 五 基本運算子 下

空合運算子 a b 將對可選型別 a 進 空判斷,如果 a 包含乙個值就進 解包,否則就返回乙個預設值b 表示式 a 必須是 optional 型別。預設值 b 的型別必須要和 a 儲存值的型別保持一致。空合運算子是對以下 的簡短表達方法 a nil a b 上述 使用 三元運算子。當可選型別 a ...

Swift學習筆記(4) 基本運算子

由於其他語言中也有一樣的運算子,我把需要注意的和不太一樣的列了出來,其他相同的就不再贅述。例子 9 4 等於 1 9 4 等於 1在對負數 b求余時,b 的符號會被忽略。這意味著 a b 和 a b 的結果是相同的。復合賦值運算沒有返回值,let b a 2這類 是錯誤。這不同於上面提到的自增和自減...

Swift 基本運算子

1,zebra 2 true,因為 1 小於 2 3 3 bird 4,dog 4,dog true,因為 4 等於 4,dog 等於 dog blue 1 purple 1 true blue false purple true 錯誤,因為 不能比較布林型別注意 1.bool 不能被比較,也意味著...