swift筆記 二 運算子

2022-07-09 15:15:09 字數 2563 閱讀 9833

基本運算子

swift支援大部分的標準c語言的操作符,而且做了一些改進,以幫助開發人員少犯低階錯誤,比方:

本該使用==的時候,少寫了個=, if x == y 寫成了 if x = y 你就悲劇了

在使用 +,-,*,/ 的時候,得到的結果溢位了。你還是悲劇了。要做非常多檢查保證不溢位才行

然而,在swift中,我們再也不用操心這些問題了。編譯器會幫我們搞定的

swift還提供了兩個c語言中沒有的二元操作符 .. 和 …

接下來,我們就來看看swift中的使用方法

術語(原文中專門列出來) 什麼是一元運算子,二元運算子,三目執行符,這裡我就不列了。

賦值執行符 (=)

賦值運算子 (=)

(感謝 swift技術交流第一平台(355277)的群友 夕顏(1651150754)

指出錯別字 )

var a = 5

let b = 10

a = b   //不解釋

重點出現。元組賦值:

let (x, y) = (1, 2)  //x = 1, y = 2 是一樣一樣的

可是假設把=寫在if 裡,在swift中是通只是編譯的,以後再也不用操心錯把== 寫成 =了

type 『()』 does not conform to protocol 『logicvalue』

也就是說編譯器並不覺得賦值操作符是個bool表示式

算術執行符

算術運算子

(感謝 swift技術交流第一平台(355277)的群友 夕顏(1651150754)

指出錯別字 )

1 + 2

5 - 3

2  *  3

10.0 / 2.5

這些寫法和c無異,可是,swift編譯器會檢查運算結果是否會溢位, 比方:

var myuint:uint = 1

arithmetic operation 『1-2』(on type』uint』) results in an overflow

但有些特殊時候。我們須要它溢位的時候怎麼辦呢?

swift提供了,能夠溢位的運算子: &-  這個先不細說。在最後的章節裡,有講溢位規則的時候再說吧

運算子+同一時候也支援字串的連線。如:

「hello, 「 + 「kitty」 //等同於 「hello, kitty"

求餘數運算子(%)

9 % 4 的結果是1 //有些語言裡求餘數運算,用的是mod

這裡須要注意的是 假設是負數運算,比方

9 % -4  的結果依舊是1,想要得到正確的結果,非得寫成:

-9 % 4 不可

當然,-9 % -4 與 -9 % 4的結果是一樣的。執行符後面的符號是被忽略的

另外,在swift中,浮點數也能夠使用 % 來做求餘數運算了,這是c和objective-c裡是不能夠的

8 % 2.5  //得到結果0.5

自增與自減運算子

跟c語言中的一樣,好吧,又會湧現出一大批腦殘面試官要用 a++和 ++a來折騰人了

反正在專案中,要是敢拿a++和 ++a來開玩笑寫easy混淆**的人。2話不說,直接開除就對了

(連**是給人讀的。不是給機器讀的的道理都不明確。還寫什麼**)

一元運算子

沒啥能夠說的…幼兒園小朋友都知道在 3前面加乙個減號,他就是-3了...

復合運算子

又是和c裡面一樣

var a = 1

a += 2  //a的值是3

比較運算子(返回bool型)

推斷等於  ==

推斷不等於 !=

推斷大於 >

推斷小於 <

推斷大於等於 >=

推斷小於等於 <=

這些運算子不僅能夠用於數值,也能夠用於字串的推斷

除此之外。swift還提供了兩個新的比較運算子 === 和 !=== 用於推斷兩個引用是否指向了同乙個物件,這個到類和結構體的章節會有樣例

三目運算子(  ? : )

與c語言一樣

question ?

answer1 : answer2

等效於if question else

範圍執行符(這樣譯我認為不合適,更應該叫自己主動擴充套件)

.. 與 ...的差別

用數學的方法描寫敘述就是:

a..b 等效於 [a, b)  //不含b

a…b 等效於 [a, b]  //含b

我認為這裡又是個坑....好不easy把 = 和 ==的問題給乾掉了,又來了個..和... 這兩個的問題根源有差別嗎?!

邏輯運算子

與(&&)

或(||)

非(!)   //神經是不是有問題!!!! 在乙個語言中。同乙個符號在不同位置有兩種意思!!! 究竟是幾個意思!!! 看著吧,這裡又是2b面試官發揮淫相的時機了

早晚會有人會寫出類似這種**:

let allowedentry:bool?

= false

if !allowedentry!  // 前後都有嘆號。究竟是幾個意思!!!!再次吐槽一下

至於不給 a && b || c || d && e 加括號表示優先順序的人。再次強烈建議開除

初學swift筆記運算子(二)

swift 中的運算子 import foundation 字元型別 varchar character a char b println char var str string str abcceadfasdfl jk 0dfaaaa 0001496 println str 檢視長度 counte...

Swift 教程(二) 基本運算子

swift 支援 c 中的大多數標準運算子,有過 c 語言基礎或者其他語言基礎的都不陌生,在這就不做過多的闡述了。現在說點不一樣的東西,swift 提供了兩張 c 中沒有的區間運算子 a 區間運算子 swift 包含了兩個區間運算子,他們是表示乙個範圍的值的便捷方式。閉區間運算子 a b 定義了從 ...

Swift 高階運算子

高階運算子 向上溢位 向下溢位 除零溢位,0作為被除數時結果是0 模零溢位,對 0求餘結果是0 varwilloverflow uint8 max 等於 255 willoverflow willoverflow 1 等於0 willoverflow willoverflow 1 等於2 varwi...