2014-06-10 30 views
60

Swift需要詳盡的切換語句,並且每個個案都有可執行代碼。有沒有人有辦法妥善處理你不想做任何事情的情況?我可以在那裏放一個println(),但是感覺很髒。Swopo徹底切換語句的Noop

+2

修改你不能只用一個突破;? – Firo

回答

99

the book,你需要使用break有:

每個案件的範圍不能爲空。因此,您必須在每個案例標籤的冒號(:)後面至少包含一條語句。如果您不打算在匹配案例的正文中執行任何代碼,請使用單個break語句。

+5

呵呵,Swift又打破了最低限度的驚喜規律:) – Sulthan

+0

@Sulthan經過一番考慮,'break'是有道理的。它提供了一種早期退出案例的方法,並且還提供了一種專門處理* nothing *的方法,即使您的'default:'具有非無效行爲 – Jiaaro

+6

@Jiaaro對'break'的需要表明沒有'break'可能會落空。 – RnMss

7

您可以只使用一休:

let vegetable = "red pepper" 
var vegetableComment: String = "Nothing" 
switch vegetable { 
case "cucumber", "watercress": 
    break // does nothing 
case let x where x.hasSuffix("pepper"): 
    vegetableComment = "Is it a spicy \(x)?" 
default: 
    vegetableComment = "Everything tastes good in soup." 
} 

例如,從docs