2014-06-08 14 views
34

Da swift nicht fällt case Anweisungen in switch, Wie kann ich eine leere case-Anweisung schreiben, ohne einen Fehler zu erhalten?Wie kann ich einen leeren Fall in Swift schreiben?

let a = 50 
switch a { 
case 0..10: 
case 10..100: 
    println("between 10 and 100") 
default: 
    println("100 and above") 
} 

Wie kann ich den ersten Fall den Schalter stoppen?

Antwort

51
let a = 50 
switch a { 
case 0..10: 
    break // Break the switch immediately 
case 10..100: 
    println("between 10 and 100") 
default: 
    println("100 and above") 
} 

Stichwort break ist optional, aber nicht in diesem Fall :)

+3

Dies ist die richtige Antwort. Aus [* Die Swift-Programmiersprache (Swift 2.2) *] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html#//apple_ref/doc/uid/TP40014097- CH9-ID139): "Da Swifts switch-Anweisung erschöpfend ist und keine leeren Fälle zulässt, ist es manchmal notwendig, einen Fall absichtlich anzupassen und zu ignorieren, um Ihre Absichten explizit zu machen. Dazu schreiben Sie die break-Anweisung als den gesamten Körper von dem Fall, den du ignorieren willst. " –

22

Um den Fehler zu vermeiden:

Case label in a switch should have at least one executable statement 

... verwenden () bei Label wie im folgenden Beispiel . Funktioniert auch mit default Etikett.

let a = 1 
switch a { 
case 1: 
    () 
case 2: 
    println("2") 
default: 
    () 
} 
Verwandte Themen