Swift 基本運算子之數值運算

2021-10-08 19:22:48 字數 2395 閱讀 6027

運算子是檢查, 改變, 合併值的特殊符號或短語. 例如, 加號 + 把計算兩個數的和(如 let i = 1 + 2). 複雜些的執行算包括邏輯與&&(如 if entereddoorcode && passedretinascan),還有自增運算子 ++i 這樣讓自身加一的便捷運算。下面介紹基礎運算子中的數值運算。

swift 讓所有數值型別都支援了基本的四則運算:

加法 +

減法 -

乘法 *

除法 /

1 + 2 // 等於 3

5 - 3 // 等於 2

2 * 3 // 等於 6

10.0 / 2.5 // 等於 4.0

與c語言和objective-c不同的是,swift預設不允許在數值運算**現溢位情況。但你可以使用 swift 的溢位運算子來達到你有目的的溢位, (如 a &+ b )。 詳情請移步: 溢位運算子。

加法操作 + 也用於字串的拼接:

"hello, " + "world" // 等於 "hello, world"
兩個字元型別或乙個字元型別和乙個字串型別, 相加會生成乙個新的字串型別:

let dog = "?"

let cow = "?"

let dogcow = dog + cow // dogcow 現在是 "??"

1. 求餘運算

求餘運算 a % b 是計算 b 的多少倍剛剛好可以容入 a , 多出來的那部分叫餘數。

注意:求餘運算(%)在其他語言也叫取模運算. 然而嚴格說來, 我們看該運算子對負數的操 作結果, 求餘 比 取模 更合適些。

我們來談談取余是怎麼回事, 計算 9 % 4, 你先計算出 4 的多少倍會剛好可以容入 9 中。

2 倍, 非常好, 那餘數是 1 (用』*'標出)。

在 swift 中這麼來表達

9 % 4 // 等於 1
為了得到 a % b 的結果, %計算了以下等式, 並輸出餘數作為結果:

a=(b×倍數)+餘數
當倍數取最大值的時候, 就會剛好可以容入 a 中。

把 9 和 4 代入等式中, 我們得 1:

9 = ( 4 * 2 ) + 1
同樣的方法, 我來們計算 -9 % 4 :

-9 % 4 //等於-1
把 -9 和 4 代入等式, -2 是取到的最大整數:

-9 = ( 4 * -2 ) + -1
餘數是 -1。

在對負數 -b 求余時, -b 的符號會被忽略. 這意味著 a % b 和 a % -b 的結果是相同的。

2. 浮點數求餘計算

不同於 c 和 objective-c, swift 中是可以對浮點數進行求餘的。

let re = 8.0.truncatingremainder(dividingby: 2.5)

print(re)

這個例子中, 8 除於 2.5 等於 3 餘 0.5, 所以結果是 0.5。

3. 自增和自減運算

和 c 一樣, swift 5 以前也提供了方便對變數本身加 1 或減 1 的自增 ++ 和自減 – 的運算子. 其 操作物件可以是整形和浮點型。

swift 5之後停止了自增和自減的使用,如果想實現該效果**如下:

var i = 0

i += 1 // 現在 i= 1

4. 單目負號

數值的正負號可以使用字首 - (即單目負號) 來切換:

// 單目負號

let three = 3

let minusthree = -three // minusthree 等於 -3

let plusthree = -minusthree // plusthree 等於 3, 或 "負負 3"

單目負號寫在運算元之前, 中間沒有空格。

5. 單目正號

單目正號 + 不做任何改變地返回運算元的值。

let minussix = -6

let alsominussix = +minussix // alsominussix 等於 -6

雖然單目 + 做無用功, 但當你在使用單目負號來表達負數時, 你可以使用單目正號來表 達 正數, 如此你的**會具有對稱美。

Swift 數值運算子

加法 減法 除法 減法 求餘 大部分oc 的運算差不多了 我這裡只說我了解和 oc不一樣的地方,有不全的請各位見諒。1 加法操作可以用來字串拼接 如 hello xiaoming 等於 helloxiaoming 2 求餘這裡的求餘不同於 oc swift 可以對浮點數進行求餘 8 2.5 0.5 ...

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 不能被比較,也意味著...

Swift 基本基本運算子

swift 1,賦值運算子 swift賦值表示式是沒有值的,不支援連續賦值。2,算術運算子 除數可為0 var f 1 0.0 求餘的結果的正負取決於被除數 3,溢位運算子 根據二進位制來進行計算 var willunderflow uint8.min uint8的最小值 willunderflow...