Swiftは徹底的なswitchステートメントを必要とし、それぞれのケースに実行可能なコードがあることを示しています。
「スイッチ」の「ケース」ラベルには、少なくとも1つの実行可能ステートメントが必要です
あなたが実際に何もしたくない場合を処理する良い方法に誰かが決着しましたか?私はそこにprintln()を置くことができますが、それは汚い感じがします。
Swiftは徹底的なswitchステートメントを必要とし、それぞれのケースに実行可能なコードがあることを示しています。
「スイッチ」の「ケース」ラベルには、少なくとも1つの実行可能ステートメントが必要です
あなたが実際に何もしたくない場合を処理する良い方法に誰かが決着しましたか?私はそこにprintln()を置くことができますが、それは汚い感じがします。
回答:
よるとこの本、あなたが使用する必要がbreakあり:
各ケースのスコープを空にすることはできません。そのため、各ケースラベルのコロン(:)の後に少なくとも1つのステートメントを含める必要があります。
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."
}
ドキュメントから変更された例
私が見つけた最もクリーンなソリューションは、デフォルトとして最後のステートメントをスイッチケースに含めることです。これにより、break可能なすべてのケースをカバーしながら、追加やその他の不要なステートメントを行う必要がなくなります。
例えば:
switch myVar {
case 0:
myOtherVar = "Red"
case 1:
myOtherVar = "Blue"
default:
myOtherVar = "Green"
}