基本運算子
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...