2015-10-05 78 views
2

是什麼A線和B線之間的區別:空的情況下,在斯威夫特

let a = 1 
switch a { 
case 1: 
    break;//line A 
case 2: 
    print("2") 
default: 
    ()//line B 
} 

我的猜測是,break是說離開switch,而()是說什麼也不做。

我不知道該怎麼尋找這一點,我是新來的斯威夫特,所以鏈接讚賞

回答

3

在你的榜樣,沒有任何區別。他們都是佔位符。規則是一個案件不能完全是空的。兩者都是滿足這一要求的方式。

+0

他們是否編譯到完全相同的東西? – nhgrif

+0

@nhgrif猜測 - 在我的例子中他們可能,但經過一些測試後,似乎你可以在'()'後面有語句,但不是在'break'後面(所以有些情況下它們肯定不會編譯成相同的東西) –

+0

爲了澄清,我並不是說在語法或語義上'()'和'break'意味着類似的東西。但它們在OP給出的例子中以相同的方式起作用。它們只是解決案件不能爲空的一種方式。 – matt