Swift Switch-case: Default wird nie ausgeführt werden Warnung
Auf Xcode 7b2 mit Swift-2-code habe ich Folgendes:
In einer switch-case der compiler gibt die folgende Warnung :
Default will never be executed
Code :
switch(type) {
case .foo:
return "foo"
case .bar:
return "bar"
case .baz:
return "baz"
default:
return "?"
}
Warum sollte es eine Warnung sein ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade verstanden, warum :
Das Objekt habe ich "umgeschaltet" auf eine
enum
und meineenum
hat nur 3 Einträge :.foo
,.bar
,baz
.Den compiler bekommt, dass es keine Notwendigkeit für ein Standard weil jeder Möglichkeit, die
enum
getestet wird.Ich denke, diese Warnung gegen die offen-geschlossen-Prinzip. Wenn Sie ein enum-Wert höher, der Standard fehlt, und Sie nicht Vorhersagen können, was Ihr code tun wird. So ändern Sie auch diesen Ort. Wie auch immer, mit switch() bei allen verstößt gegen dieses Prinzip.
Dafür könnte sein, dass
type
ist ein enum mit 3 Fällen und der compiler weiß, dass die switch-Anweisung ist erschöpfend, so dass Sie nicht brauchen, eindefault
- Anweisung, um alle möglichen Fälle.