最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例講解Swift編程中switch...case語句的用法

 更新時間:2016年04月13日 11:29:16   作者:wizardforcel  
這篇文章主要介紹了Swift編程中switch...case語句的用法,其中fallthrough關(guān)鍵字在switch語句中的使用是重點(diǎn),需要的朋友可以參考下

Switch作為選擇結(jié)構(gòu)中必不可少的語句也被加入到了Swift中,只要有過編程經(jīng)驗(yàn)的人對Switch語句都不會感到陌生,但蘋果對Switch進(jìn)行了大大的增強(qiáng),使其擁有其他語言中沒有的特性。使用Switch語句很簡單:

var i = 0 
switch i { 
 case 0: 
  "0" //被輸出 
 case 1: 
  "1" 
 default: 
  "2" 
} 

在這個最簡單的Switch語句中,與其他語言很不同的一點(diǎn)是:不用顯式的加上break。Swift的Switch語句會自動在case結(jié)尾處加上break,執(zhí)行完滿足條件的case部分后,就自動退出了。但是在某些情況下,我們可能會希望Switch能同時執(zhí)行兩條case,那么可以這樣:

var i = 3 
switch i { 
 case 0,3: 
  "0" //被輸出 
 case 1: 
  "1" 
 default: 
  "2" 
} 

在case后的多個條件中,用逗號隔開即可。
如果就是想執(zhí)行完一條case之后,想繼續(xù)執(zhí)行下一條case,就要用到一個新的關(guān)鍵字:

var i = 0 
switch i { 
 case 0: 
  "0" //被輸出 
  fallthrough 
 case 1: 
  "1" //被輸出 
 case 2: 
  "2" 
 default: 
  "default" 
} 

使用新的關(guān)鍵字fallthrough能使Switch在執(zhí)行完一個case之后,緊接著執(zhí)行下一條case。
Swift的Switch語句一定要涵蓋所有的情況,這并不是說一定要有default,只要上面的case能滿足所有的情況,就可以不用寫default。


下面我們來看一些小例子幫助理解:

例1:

let someOne = ("25","liyuanbo")

switch someOne
 {
case (_,let name) where name.hasPrefix("li"):
 println("First name has li")
 
default:
 println("First has not li")
}

這里 (_,let name) where name.hasPrefix("li") 就是在someOne2落入(_,let name)中的name有沒有前綴字符串有沒有l(wèi)i。當(dāng)然someOne2是滿足這個條件的。


例2:
下面我們來看看fallthrough的用法

switch coordinate1
 {
case (0,0):
 println("原點(diǎn)")
 fallthrough
case (_,0):
 println("x軸")
 fallthrough
case(0,_):
 println("y軸")
case(-2...2,-2...2):
 println("矩形區(qū)域")
default:
 println("沒有任何目標(biāo)區(qū)域")
 
}

這樣我們可以看到打印輸出了:原點(diǎn),x軸,y軸,如果繼續(xù)加,就會打印多出一個矩形區(qū)域。

最后我們要強(qiáng)調(diào)一點(diǎn),swift中的switch一定的包含變量的所有情況,這里我們?nèi)绻鹀oordinate4是(10,10)然后把default注釋點(diǎn),就會報(bào)錯,因?yàn)樯厦?個條件是不能滿足(10,10)這個點(diǎn)的。


那是不是說必須得有default,當(dāng)然不是的,這要對變量的所有情況都包含,可以沒有default。

let coordinate2 = (2,0)

switch coordinate2
 {
case (0,0):
 println("原點(diǎn)")
case (let x,0):
 println("x軸")
case(0,let y):
 println("y軸")
 
case(let x,let y):
 println("所有區(qū)域")
 
}

這里就可以沒有default,因?yàn)檫@里case(let x,let y)都包含了2維坐標(biāo)的所有點(diǎn)。

相關(guān)文章

  • Swift語言中的函數(shù)學(xué)習(xí)教程

    Swift語言中的函數(shù)學(xué)習(xí)教程

    這篇文章主要介紹了Swift語言中的函數(shù)學(xué)習(xí)教程,著重講了Swift函數(shù)的參數(shù)傳遞用法,需要的朋友可以參考下
    2015-11-11
  • 倉庫模式及其在Swift?項(xiàng)目中的應(yīng)用詳解

    倉庫模式及其在Swift?項(xiàng)目中的應(yīng)用詳解

    這篇文章主要為大家介紹了倉庫模式及其在Swift?項(xiàng)目中的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 分析Swift性能高效的原因

    分析Swift性能高效的原因

    絕大多數(shù)公司選擇Swift語言開發(fā)iOS應(yīng)用,主要原因是因?yàn)镾wift相比Objc有更快的運(yùn)行效率,更加安全的類型檢測,更多現(xiàn)代語言的特性提升開發(fā)效率;這一系列的優(yōu)點(diǎn)使Swift語言的熱度越來越高。
    2020-10-10
  • IOS 實(shí)現(xiàn)簡單的彈幕功能

    IOS 實(shí)現(xiàn)簡單的彈幕功能

    本文主要介紹IOS 實(shí)現(xiàn)彈幕功能,這里給大家一個實(shí)例來展現(xiàn)彈幕功能,有需要的小伙伴可以參考下
    2016-07-07
  • 詳細(xì)講解Swift中的類型占位符

    詳細(xì)講解Swift中的類型占位符

    類型占位符是swift5.6中引?的?個新功能,在處理稍微復(fù)雜的通?類型時,它可能真的很有用,這篇文章主要給大家介紹了關(guān)于Swift類型占位符的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Swift?enum枚舉類型使用詳解

    Swift?enum枚舉類型使用詳解

    這篇文章主要為大家介紹了Swift?enum枚舉類型的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Swift代碼實(shí)現(xiàn)冒泡排序算法的簡單實(shí)例

    Swift代碼實(shí)現(xiàn)冒泡排序算法的簡單實(shí)例

    冒牌排序可謂最基本的排序算法之一,穩(wěn)定而沒有優(yōu)化空間:D 下面就一起來看一下Swift代碼實(shí)現(xiàn)冒泡排序算法的簡單實(shí)例:
    2016-06-06
  • Swift流程控制之循環(huán)語句和判斷語句詳解

    Swift流程控制之循環(huán)語句和判斷語句詳解

    這篇文章主要介紹了Swift流程控制之循環(huán)語句和判斷語句詳解,文中還使用了一個游戲例子來講解循環(huán)語句和判斷語句的使用,需要的朋友可以參考下
    2014-07-07
  • RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift是Swift函數(shù)響應(yīng)式編程的一個開源庫,由Github的ReactiveX組織開發(fā),維護(hù)。下面這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)之基礎(chǔ)篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • 深入理解Swift語言中的閉包機(jī)制

    深入理解Swift語言中的閉包機(jī)制

    這篇文章主要介紹了Swift語言中的閉包機(jī)制,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11

最新評論

南昌市| 鹤岗市| 洛宁县| 含山县| 中方县| 辰溪县| 水城县| 安化县| 赤峰市| 类乌齐县| 南部县| 项城市| 岢岚县| 东莞市| 且末县| 太仓市| 宁乡县| 都昌县| 西和县| 东山县| 康定县| 长治县| 腾冲县| 太原市| 兴化市| 巴林右旗| 龙山县| 汨罗市| 南充市| 屏山县| 新邵县| 新龙县| 泗水县| 浪卡子县| 永福县| 阳信县| 平度市| 遂川县| 漳浦县| 伊吾县| 宣汉县|