シグネチャ
{type-switch value
[case e1:type1 do statements]
[case e2:type2 do statements]
[else statements]
}
単一の式と、可能な複数の一致の間の isa テストに基づいて、コード ブロックに実行をスイッチします。
説明
value は順番に各ケース式と比較されます。比較は isa により行なわれます。最初に一致するケース式に対して、ケース ステートメントにより名付けられた変数に value が代入され、対応する statements が実行されます。一致するケース式がない場合、else 句が存在すればそれに続く statements が実行されます。
type-switch 内で、ケース式の型がその前のケース式の型のサブタイプである場合は構文エラーが生成されます。
注意事項
一致式は、1 回だけ評価されます。
戻り値
type-switch 式が値を返すのは、
else 句が含まれていて、各句の最後の式で値が生成されるか、あるいは常に例外 (
throw または
error ステートメントなど) がスローされることがコンパイラにより認識されている場合だけです。これらの条件が満たされると、
type-switch は実行された句の最後の式から得られる値を生成します。