OC與Swift的區別三,OCSwift區別三

來源:互聯網
上載者:User

OC與Swift的區別三,OCSwift區別三

11.swift中的switch結構

區別一:

oc中switch條件只可以放整數

swift中switch條件可以放幾乎任何資料類型

區別二:

oc中每一個case中應有break,如果沒有break,則會繼續向下貫穿執行case直到碰見break跳出switch結構

swift中不需要在case分支最後添加break語句,該case分支執行完成後,會跳出switch結構

區別三:

oc中不是每個case後面必須有可執行語句,如果某個case分支中沒有可執行語句和break,則該分支將會執行其下面最近的一個有可執行語句的分支中代碼,以此實現多條件匹配

swift中每個case後面必須都有可執行語句,

ps:此區別是因為區別二的存在,swift中表示多條件匹配的情況使用的文法為,case後跟多個條件,用逗號隔開。

此外,swift的case中可以填寫一個範圍作為匹配條件,如case a...b:

區別三:

oc中switch中default不是必需的

swift中switch中default是必需的

 

swift中switch語句可以使用where來增加判斷條件

如:

var point = (10,-10)

switch point{

  case let(x,y) where x == y :

             //

      case let(x,y) where x == -y :

            //

       default :

    //

}

swift中switch語句可以使用fallthrough關鍵字來執行貫穿操作,即執行完當前case後,會接著執行fallthrough後面的case活著default語句,類似於oc中case沒有寫break語句,但是使用了fallthrough,其後面的case條件中將不能定義常量或變數,即fallthrough後面的case條件不能使用類似上面代碼中let (x,y) 這樣的變數來接收point,否則會有語法錯誤。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.