Swift richiede dichiarazioni di switch esaustive e che ogni caso ha un codice eseguibile. Qualcuno si è sistemato in un buon modo per gestire i casi in cui non si vuole realmente fare qualcosa? Posso inserire un println() lì, ma è sporco.Noop per le dichiarazioni di switch di rettifica di Swift
risposta
Secondo the book, è necessario utilizzare break
lì:
La portata di ogni singolo caso non può essere vuoto. Di conseguenza, è necessario includere almeno un'istruzione che segue i due punti (:) di ciascuna etichetta del caso. Utilizzare una singola istruzione
break
se non si intende eseguire alcun codice nel corpo di un caso corrispondente.
Oh, ancora una volta Swift infrange la legge della sorpresa minima :) – Sulthan
@Sulthan dopo una piccola considerazione, 'break 'ha senso. Fornisce un modo per uscire anticipatamente da un caso e anche un modo per fare proprio * nothing *, anche quando il tuo 'default:' ha un comportamento non-niente – Jiaaro
@Jiaaro La necessità di 'break' indica che i rami senza' break' potrebbe cadere. – RnMss
Si può semplicemente utilizzare una pausa:
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."
}
esempio modificato dal docs
- 1. Utilizzeresti le regioni all'interno di dichiarazioni di switch/enum lunghi?
- 2. Dichiarazioni switch di grandi dimensioni: OOP errato?
- 3. Come posso creare un blocco noop per un caso di commutazione in Swift?
- 4. Swift: tipo di classe di test nell'istruzione switch
- 5. Prevenire Visual Studio per aggiungere linee di interruzione nelle dichiarazioni switch-case
- 6. Come testare le dichiarazioni di stampa?
- 7. A cosa servono le dichiarazioni di dispatcher?
- 8. log4net non registra le dichiarazioni di debug
- 9. generano automaticamente le dichiarazioni di modulo ambientali
- 10. spopolare solo le dichiarazioni di ordine
- 11. rispondente @media query per rimuovere le dichiarazioni di stile
- 12. C'è un modo per estendere le dichiarazioni di tipo?
- 13. semplifica le dichiarazioni enormi se - modello di progettazione?
- 14. Efficienza: Interruttore dichiarazioni sopra se le dichiarazioni
- 15. di Duff a Swift
- 16. Dichiarazioni di variabili che seguono se dichiarazioni
- 17. Dichiarazioni di ArrayList Java
- 18. Switch: Enum Switch issue: Non membro di un
- 19. switch/case all'interno di uno switch/case
- 20. strumento Haskell per riscrivere le dichiarazioni di importazione di nominare tutte le importazioni?
- 21. Formattazione/rientro per l'utilizzo di dichiarazioni (C#)
- 22. Inutilizzato usando le dichiarazioni
- 23. test per le dichiarazioni console.log in IE
- 24. PowerShell considera stringa vuota come equivalente al nulla in istruzioni switch, ma non se le dichiarazioni
- 25. Proposta per dichiarazioni/istanze di dati locali
- 26. per-loop con più dichiarazioni di variabili
- 27. Dichiarazioni multiple di x
- 28. Swift - utilizzando enum nella dichiarazione switch
- 29. dichiarazioni let richiedono l'espressione di inizializzazione
- 30. Costruisci switch per combinazioni di booleani
Non potresti semplicemente usare una pausa ;? – Firo