Go の型スイッチ ブランチ内の型アサーションを回避するにはどうすればよいですか?
Dec 06, 2024 am 09:21 AMタイプ スイッチ分岐内の型アサーションの削除
Go では、タイプ スイッチは、値の型に基づいて実行を分岐する便利な手段を提供します。 。ただし、これらのブランチ内の型アサーションは反復的で煩雑になる可能性があります。
型アサーションの回避
不要な型アサーションを回避するには、型切り替えの結果を次のように割り当てることができます。型付き変数:
switch question := question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question, symbols) case interfaces.InputQuestion: handleInputQuestion(question, symbols) }
この例では、型スイッチは質問の値を変数に割り当てます。質問は、実行されるブランチに従って自動的に入力されます。これにより、ブランチ内で明示的な型アサーションが必要なくなります。
例
次のコードを考えてみましょう。
switch question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question.(interfaces.ComputedQuestion), symbols) case interfaces.InputQuestion: handleInputQuestion(question.(interfaces.InputQuestion), symbols) }
型アサーションを次のように置き換えます。変数の代入により、次の同等のコードが生成されます。
switch question := question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question, symbols) case interfaces.InputQuestion: handleInputQuestion(question, symbols) }
これを採用すると、このアプローチを使用すると、機能を犠牲にすることなくコードを合理化し、読みやすさを向上させることができます。
以上がGo の型スイッチ ブランチ内の型アサーションを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか?
