一個關(guān)鍵字就讓你震撼Swift的強大且讓你即刻喜歡上它


一個關(guān)鍵字,能做你50行代碼也做不到的事情;
一個關(guān)鍵字,能讓你震撼它的強大;
一個關(guān)鍵字,能讓你即可喜歡上他.
不信?你拉到最后看一眼就行了!

這都行.jpg

不要不相信,這就帶你去了解一個關(guān)鍵字,讓你相信世界上真有奇跡!
***它僅僅是一個關(guān)鍵字:
--------->? switch ?<----------


我們知道的switch是下面這樣的:

  • 你能回答我為什么 括號里 只能是返回整型的表達式嗎?
  • 你能回答我為什么 case 后只能是整數(shù)嗎?
    • 可不可以不要那么多條條框框?
    • 可不可以不要那么功能單一?
    • 可不可以不寫break,死命重復(fù)有意義嗎?
    • 忘記寫break可不可以不穿透?
 switch (返回整型的表達式) {
    case 整數(shù):
        需要執(zhí)行的代碼A;
        break;
    case 整數(shù):
         需要執(zhí)行的代碼B;
         break;
    ...
    default:
        需要執(zhí)行的其它代碼;
        break;
 }

***讓 Swift 來回答你 : 如你所愿! ***


來看看Swift里的switch的優(yōu)雅表演

你有的我一樣有
  • 單值判斷
//單值判斷
let sex = 1
switch sex {
case 0:
    print("男")
case 1:
    print("女")
default:
    print("其他")
}

我有的你一樣都沒有
  • 多值(范圍)判斷
//多值判斷
switch sex {
case 0...1:
    print("正常人")
default:
    print("其他")
}
  • 浮點型判斷:為什么只能判斷整形值,你out了
//浮點型判斷
let pi = 3.14
switch pi {
case 3.14:
    print("π")
default:
    print("不是圓周率")
}
  • 字符判斷 :直接點就是好
//字符判斷
let m = 92.3
let n :Double = 0
var result :Double = 0
let option = "+"

switch option {
case "+":
    result = m + n
case "-":
    result = m - n
case "*":
    result = m * n
case "/":
    guard n > 0 else {
        result = m
        break
    }
    result = m / n
default:
    result = 0
}
print(result)
  • 范圍匹配
//范圍匹配
switch count {
case 0..<10:
    print("1位數(shù)")
case 10..<100:
    print("2位數(shù)")
case 100..<1000:
    print("3位數(shù)")
case 1000..<10000:
    print("4位數(shù)")
default:
    print("5位數(shù)")
}
  • 元祖匹配
//元組匹配
let point = (1,0)
switch point {
case (0,0):
    print("在原點")
case (0..<10,_) :
    print("在y軸右邊")
case (_,0..<10) :
    print("在x軸上邊")
default:
    print("在不知名的遠方")
}
  • 值綁定 :還有誰能辦到
//值綁定
let point2 = (0,-10)
switch point2 {
case (let x, 10)://當y=10時輸出x的值
    print(x)
case (0 , let y) where y < 0://當x = 0 且 y < 0 時輸出的值
    print(y)
default:
    print("其他")
}
  • 多值匹配 :這才是最牛逼的
//多值匹配
let currentCharacter: Character = "e"
switch currentCharacter {
case "a", "e", "i", "o", "u":
    print("\(currentCharacter) is a vowel")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
     "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
    print("\(currentCharacter) is a consonant")
default:
    print("\(currentCharacter) is not a vowel or a consonant")
}

最后問一句:你震撼了嗎?你喜歡上Swift了嗎?
參考:http://www.cocoachina.com/ios/20140611/8769.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窍侧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屑彻,更是在濱河造成了極大的恐慌撞蚕,老刑警劉巖润梯,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诈豌,居然都是意外死亡仆救,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門矫渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彤蔽,“玉大人,你說我怎么就攤上這事庙洼《倩荆” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵油够,是天一觀的道長蚁袭。 經(jīng)常有香客問我,道長石咬,這世上最難降的妖魔是什么揩悄? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮鬼悠,結(jié)果婚禮上删性,老公的妹妹穿的比我還像新娘亏娜。我一直安慰自己,他們只是感情好蹬挺,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布维贺。 她就那樣靜靜地躺著,像睡著了一般巴帮。 火紅的嫁衣襯著肌膚如雪溯泣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天榕茧,我揣著相機與錄音垃沦,去河邊找鬼。 笑死雪猪,一個胖子當著我的面吹牛栏尚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播只恨,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼译仗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了官觅?” 一聲冷哼從身側(cè)響起纵菌,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎休涤,沒想到半個月后咱圆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡功氨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年序苏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捷凄。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡忱详,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跺涤,到底是詐尸還是另有隱情匈睁,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布桶错,位于F島的核電站航唆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏院刁。R本人自食惡果不足惜糯钙,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧超营,春花似錦鸳玩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颓帝。三九已至米碰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間购城,已是汗流浹背吕座。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瘪板,地道東北人吴趴。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像侮攀,于是被迫代替她去往敵國和親锣枝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

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

  • 本章將會介紹 控制流For-In 循環(huán)While 循環(huán)If 條件語句Switch 語句控制轉(zhuǎn)移語句 continu...
    寒橋閱讀 715評論 0 0
  • Swift提供了多種控制流聲明。包括while循環(huán)來多次執(zhí)行一個任務(wù)畦贸;if陨闹,guard和switch聲明來根據(jù)確定...
    BoomLee閱讀 1,939評論 0 3
  • Swift 提供了類似 C 語言的流程控制結(jié)構(gòu),包括可以多次執(zhí)行任務(wù)的for和while循環(huán)薄坏,基于特定條件選擇執(zhí)行...
    窮人家的孩紙閱讀 693評論 1 1
  • 86.復(fù)合 Cases 共享相同代碼塊的多個switch 分支 分支可以合并, 寫在分支后用逗號分開趋厉。如果任何模式...
    無灃閱讀 1,354評論 1 5
  • 普普通通旅途,喜歡寫點遇見的陌生人胶坠,畢竟人生能遇見的也就這一次君账。 (一)候車室的婦女 候車的時間很無聊,和哥們聊了...
    海象閱讀 315評論 0 1