type-switch (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

シグネチャ

{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 は実行された句の最後の式から得られる値を生成します。