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,否則會有語法錯誤。
新聞熱點
疑難解答