Swift的switch結構中,fallthrough的用法注意總結

來源:互聯網
上載者:User

標籤:swift   switch   fall   through   注意   

在swift的switch中,case後面加了fallthrough的用法,就和OC的case後面沒加break的用法是一樣的!

使用fallthrough需要注意的有:

1.加了fallthrough後,會直接運行【緊跟的後一個】case或default語句,不論條件是否滿足都會執行

var age = 10switch age {    case 0...10:        print("小朋友")        fallthrough    case 11...20:        print("大朋友")    case let x:        print("\(x)歲的朋友")}//輸出結果:小朋友大朋友

2.加了fallthrough語句後,【緊跟的後一個】case條件不能定義常量和變數

var age = 10switch age {    case 0...10:        print("小朋友")        fallthrough //此處報錯    case let x:        print("\(x)歲的朋友")}//程式報錯:‘fallthrough‘ cannot transfer control to a case label that declares variables

原因,我理解的是:由第一點我們知道,第一個case執行完後(輸出“小朋友”)會直接執行下一個case,而下一個case條件裡定義了臨時變數x,這樣就導致直接從上一個case進來的並沒有這個變數x,那如果case語句裡用到了x,很明顯就會出錯。swift這麼要求安全的一種語言自然是不允許發生這種事情的,所以,fallthrough後一個case條件裡不允許定義常量/變數——除了緊跟著的後一個,後面的其他case還是可以定義常量/變數的

3.執行完fallthrough後直接跳到下一個條件陳述式,本條件執行語句後面的語句不執行

var age = 10switch age {    case 0...10:        print("小朋友")        fallthrough        print("我跳轉了哦") //這一句沒有執行    case 11...20:        print("大朋友")    case let x:        print("\(x)歲的朋友")}//輸出結果:小朋友大朋友

如果你有任何問題,請留言告訴我!

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Swift的switch結構中,fallthrough的用法注意總結

相關文章

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.