Swift requiere declaraciones de cambio exhaustivas y que cada caso tenga un código ejecutable.
La etiqueta 'case' en un 'switch' debe tener al menos una declaración ejecutable
¿Alguien se ha decidido por una buena forma de manejar los casos en los que no quieres hacer nada? Puedo poner un println () ahí, pero se siente sucio.
Respuestas:
Según el libro , debe usar
break
allí:fuente
break
indica que las ramas sinbreak
podrían fallar.()
también. Sin embargo prefierobreak
porque deja las cosas más claras. Utilice la palabra clavefallthroug
para pasar por las declaraciones.default:
caso. Eso no parece nada bueno. También estoy de acuerdo en que sugiere el comportamiento de caída de c, que no es lo que hace Swift (aunque es bueno saber que puede fallar).Puede utilizar una
break
declaración: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." }
Ejemplo modificado de los documentos
fuente
A continuación se muestra una opción para la declaración nula, pero tal vez no sea una buena solución. No puedo encontrar una declaración como Python Pass
Para el caso del interruptor, romper es una mejor opción.
break
fuente
La solución más limpia que he encontrado es simplemente incluir su última declaración en el caso del interruptor como predeterminado. Esto evita la necesidad de agregar
break
u otras declaraciones innecesarias al tiempo que cubre todos los casos posibles.Por ejemplo:
switch myVar { case 0: myOtherVar = "Red" case 1: myOtherVar = "Blue" default: myOtherVar = "Green" }
fuente
Además de lo
break
mencionado en otras respuestas, también lo he visto()
utilizado como una declaración de no operación:switch 0 == 1 { case true: break case false: () }
Úselo
()
si le resultabreak
confuso o desea guardar 3 caracteres.fuente