概要
- Swiftのswitch文では、各case節やdefault節に何か1行以上処理が書いてないと文法エラーになります。
- コメントは不可です。Objective-Cではdefault節に
// do nothing
等のコメントだけ書くことも多かったと思いますが、swiftでは文法エラーになります。 - 処理は
break
やprintln
、return
などなんでもOK。とくに必要な処理がない場合は、break
を記述すると処理を変えず文法エラーを回避することができます。 Swiftではswitch文のdefault節が必須になりました。- →取りうるすべての値をカバーしていれば、default節は必須ではありません。
- mono0926さんからいただいたご指摘をもとに、誤りを修正しました。どうもありがとうございます! 2014/08/17
解決法
- 処理がない場合は、明示的に
break
を書けばOK
sample.swift
var ret = 0
switch section {
case 0:
ret = array1.count
case 1:
ret = array2.count
default:
break // do nothing
}
文法エラーの例
問題点
- default節に処理がない
エラーメッセージ
- 'default' label in a 'switch' should have at least one executable statement
error2.swift
var ret = 0
switch section {
case 0:
ret = array1.count
case 1:
ret = array2.count
default:
// do nothing
}
まとめ
- 何も処理がない場合は
break
を書けばOK - 気になる点がありましたら気軽にコメントください!