ホームページ >バックエンド開発 >Golang >Go の型スイッチでフォールスルーが禁止されているのはなぜですか?

Go の型スイッチでフォールスルーが禁止されているのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-16 00:35:02230ブラウズ

Why is Fallthrough Prohibited in Go's Type Switches?

型スイッチでのフォールスルー禁止:

Go では、「フォールスルー」ステートメントは、後続のケースの実行を許可する言語構造です。明示的な Break ステートメントのない switch ステートメント。ただし、型スイッチではフォールスルーは許可されていません。

これはなぜですか?

型スイッチは式の型を決定し、それをスイッチ ケースで指定された変数に割り当てます。この変数は、スイッチのその時点での式の特定の型を表します。

フォールスルーが許可されている場合、型の不一致の問題が発生します。提供されているコード スニペットを考えてみましょう:

bool が true の場合、変数 i にはインターフェイス x 内の bool の値が割り当てられます。フォールスルーが許可された場合、実行は文字列の場合に続行されます。ただし、その時点では、変数 i はブール値を保持したままになります。この型の不一致により、エラーが発生します。

さらに、フォールスルー ステートメントは変数 i の型を変更できないため、型の切り替えでは意味がありません。型スイッチは、それぞれの場合に式の型を特定の型に絞り込むことを目的としています。フォールスルーを許可すると、この目的が果たせなくなります。

目的の動作を実現するには、以下に示すように、各ケース内で明示的な型変換を伴う switch ステートメントを使用できます。

このアプローチを使用すると、 、フォールスルーを必要とせずに、単一の switch ステートメント内でさまざまな型を処理できます。

以上がGo の型スイッチでフォールスルーが禁止されているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。