Swift требует исчерпывающих операторов switch и чтобы в каждом случае имелся исполняемый код.
Метка case в переключателе должна иметь хотя бы один исполняемый оператор
Кто-нибудь нашел хороший способ справиться со случаями, когда вы на самом деле ничего не хотите делать? Я могу поместить туда println (), но это кажется грязным.
Ответы:
По книге там нужно использовать
break
:источник
break
указывает на то, что ветви без негоbreak
могут провалиться.()
работники тоже. Тем не менее я предпочитаю,break
поскольку это проясняет ситуацию. Используйте ключевое слово,fallthroug
чтобы пропустить утверждения.default:
случае. Это не похоже на хорошее. Я также согласен с тем, что это наводит на мысль о провале c, а это не то, что делает Swift (хотя приятно знать, что он может провалиться).Вы можете использовать
break
инструкцию: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." }
Пример изменен из документации
источник
Ниже приведен один вариант для нулевого оператора, но, возможно, это не очень хорошее решение. Я не могу найти такое выражение, как python pass
Для корпуса переключателя перерыв - лучший выбор.
break
источник
Самое чистое решение, которое я нашел, - просто включить последний оператор в case switch по умолчанию. Это позволяет избежать добавления
break
или других ненужных утверждений, но при этом охватывает все возможные случаи.Например:
switch myVar { case 0: myOtherVar = "Red" case 1: myOtherVar = "Blue" default: myOtherVar = "Green" }
источник
В дополнение к
break
упомянутому в других ответах я также видел, что он()
используется в качестве оператора без операции:switch 0 == 1 { case true: break case false: () }
Используйте,
()
если васbreak
сбивает с толку или вы хотите сохранить 3 символа.источник