Swiftでは、オプションの内容に対して切り替えられる値をテストするスイッチステートメントでケースをどのように記述できますnil
か?オプションが含まれている場合、ケースをスキップしますか?
これが私がこれが見えるかもしれないと想像する方法です:
let someValue = 5
let someOptional: Int? = nil
switch someValue {
case someOptional:
// someOptional is non-nil, and someValue equals the unwrapped contents of someOptional
default:
// either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional
}
これとまったく同じように書くと、コンパイラーsomeOptional
はアンラップされていないと文句を言いますが!
、最後に追加して明示的にアンラップすると、もちろん、実行時エラーが発生しsomeOptional
ますnil
。の?
代わりに追加することは!
私にはある程度の意味がありますが(オプションの連鎖の精神では)、コンパイラエラーがなくなるわけではありません(つまり、実際にはオプションのラップが解除されません)。