iOS開發(fā)之Swift學(xué)習(xí)(四)——基本運算符

文章目錄:
(1)賦值運算符
(2)算術(shù)運算符
(3)組合賦值運算符
(4)比較運算符
(5)三目運算符
(6)空合運算符
(7)區(qū)間運算符
(8)邏輯運算符

(1)賦值運算符

與 C 語言和 Objective-C 不同斗蒋,Swift 的賦值操作并不返回任何值拆挥。所以以下代碼是錯誤的:

if x = y {
// 此句錯誤, 因為 x = y 并不返回任何值
}

(2)算術(shù)運算符

  1. 加法運算符也可用于 String 的拼接:
"hello, " + "world" // 等于 "hello, world"
  1. 在對負數(shù) b 求余時独柑, b 的符號會被忽略僧家。這意味著 a % b 和 a % -b 的結(jié)果是相同的关顷。

(3)組合賦值運算符

+=
復(fù)合賦值運算沒有返回值焊傅, let b = a += 2 這類代碼是錯誤虐秋。

(4)比較運算符

? 等于( a == b )
? 不等于( a != b )
? 大于( a > b )
? 小于( a < b )
? 大于等于( a >= b )
? 小于等于( a <= b )

注意: Swift 也提供恒等( === )和不恒等( !== )這兩個比較符來判斷兩個對象是否引用同一個對象實例模她。
  1. 當元組中的值可以比較時趋观,可以使用這些運算符來比較它們的大小扛禽。例如,因為 Int 和 String 類型的值可以比較皱坛,所以類型為 (Int, String) 的元組也可以被比較编曼。相反, Bool 不能被比較剩辟,也意味著存有布爾類型的元組不能被比較掐场。
  2. 比較元組大小會按照從左到右、逐值比較的方式贩猎,直到發(fā)現(xiàn)有兩個值不等時停止熊户。如果所有的值都相等,那么這一對元組我們就稱它們是相等的吭服。
注意:
Swift 標準庫只能比較七個以內(nèi)元素的元組比較函數(shù)嚷堡。如果你的元組元素超過七個時,你需要自己實現(xiàn)比較運算 符艇棕。

(5)三目運算符

和OC中完全一樣:問題 ? 答案 1 : 答案 2

(6)空合運算符

空合運算符( a ?? b )將對可選類型 a 進行空判斷蝌戒,如果 a 包含一個值就進行解封串塑,否則就返回一個默認值 b 。表達式 a 必須是 Optional 類型北苟。默認值 b 的類型必須要和 a 存儲值的類型保持一致桩匪。
空合運算符是對以下代碼的簡短表達方法:

a != nil ? a! : b

上述代碼使用了三目運算符。當可選類型 a 的值不為空時粹淋,進行強制解封(a!)吸祟,訪問 a 中的值;反之返回默認值 b 。無疑空合運算符( ?? )提供了一種更為優(yōu) 的方式去封裝條件判斷和解封兩種行為桃移,顯得簡潔以 及更具可讀性。

注意: 如果 a 為非空值( non-nil )葛碧,那么值 b 將不會被計算借杰。這也就是所謂的短路求值。

下文例子采用空合運算符进泼,實現(xiàn)了在默認顏色名和可選自定義顏色名之間抉擇:

let defaultColorName = "red"
var userDefinedColorName: String? //默認值為 nil
var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 的值為空蔗衡,所以 colorNameToUse 的值為 "red"

(7)區(qū)間運算符

1)閉區(qū)間運算符

閉區(qū)間運算符(a...b )定義一個包含從 a 到 b (包括 a 和 b )的所有值的區(qū)間。a 的值不能超過 b 乳绕。 ? 閉區(qū)間運算符在迭代一個區(qū)間的所有值時是非常有用的绞惦,如在 循環(huán)中:

for index in 1...5 {
     print("\(index) * 5 = \(index * 5)")
 }
 // 1 * 5 = 5
 // 2 * 5 = 10
 // 3 * 5 = 15
 // 4 * 5 = 20
 // 5 * 5 = 25

2)半開區(qū)間運算符

1、半開區(qū)間運算符( a..<b )定義一個從 a 到 b 但不包括 b 的區(qū)間洋措。 之所以稱為半開區(qū)間济蝉,是因為該區(qū)間包含第一個值而不包括最后的值。
2菠发、半開區(qū)間的實用性在于當你使用一個從 0 開始的列表(如數(shù)組)時王滤,非常方便地從0數(shù)到列表的長度。

let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
 print("第 \(i + 1) 個人叫 \(names[i])") 
}
// 第 1 個人叫 Anna 
// 第 2 個人叫 Alex 
// 第 3 個人叫 Brian 
// 第 4 個人叫 Jack

(8)邏輯運算符

邏輯運算符的操作對象是邏輯布爾值滓鸠。Swift 支持基于 C 語言的三個標準邏輯運算雁乡。(和OC中一模一樣),當邏輯多的時候糜俗,使用邏輯運算組合的時候可以加括號‘()’使得代碼更加明確易懂踱稍。
? 邏輯非( !a )
? 邏輯與( a && b )
? 邏輯或( a || b )

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市悠抹,隨后出現(xiàn)的幾起案子珠月,更是在濱河造成了極大的恐慌,老刑警劉巖锌钮,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桥温,死亡現(xiàn)場離奇詭異,居然都是意外死亡梁丘,警方通過查閱死者的電腦和手機侵浸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門旺韭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人掏觉,你說我怎么就攤上這事区端。” “怎么了澳腹?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵织盼,是天一觀的道長。 經(jīng)常有香客問我酱塔,道長沥邻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任羊娃,我火速辦了婚禮唐全,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蕊玷。我一直安慰自己邮利,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布垃帅。 她就那樣靜靜地躺著延届,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贸诚。 梳的紋絲不亂的頭發(fā)上方庭,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音赦颇,去河邊找鬼二鳄。 笑死,一個胖子當著我的面吹牛媒怯,可吹牛的內(nèi)容都是我干的订讼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼扇苞,長吁一口氣:“原來是場噩夢啊……” “哼欺殿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鳖敷,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤脖苏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后定踱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棍潘,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亦歉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恤浪。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肴楷,靈堂內(nèi)的尸體忽然破棺而出水由,到底是詐尸還是另有隱情,我是刑警寧澤赛蔫,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布砂客,位于F島的核電站,受9級特大地震影響呵恢,放射性物質(zhì)發(fā)生泄漏鞠值。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一渗钉、第九天 我趴在偏房一處隱蔽的房頂上張望齿诉。 院中可真熱鬧,春花似錦晌姚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至焕议,卻和暖如春宝磨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盅安。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工唤锉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人别瞭。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓窿祥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝙寨。 傳聞我的和親對象是個殘疾皇子晒衩,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 運算符是檢查、改變墙歪、合并值的特殊符號或短語听系。例如,加號+將兩個數(shù)相加(如let i = 1 + 2)虹菲。更復(fù)雜的運算...
    窮人家的孩紙閱讀 14,964評論 3 6
  • 運算符 是可以檢查靠胜,修改或者組合值的特殊符號或者短語。例如,加法運算符(+)將兩個數(shù)相加浪漠,像let i = 1 +...
    BoomLee閱讀 1,823評論 0 4
  • 一陕习、《中庸》的尷尬 1、在閱讀今天的文章之前郑藏,先復(fù)習(xí)一遍6月7號熊老師文中的提醒:“我們在讀書的時候要有一種警醒衡查,...
    祥和鴻泰閱讀 349評論 0 3
  • 真正的喜歡, 怎么忍得住必盖, 什么都忍不住……
    一起去看看這世界閱讀 173評論 0 0
  • 一江春水付了落花拌牲,一句遺忘去了天涯,一杯濁酒醉了牽掛歌粥,一腔離愁老了韶華塌忽! ----------素言淡漠 我終是喜歡...
    素言淡漠閱讀 339評論 1 3