タイプ スイッチ分岐内の型アサーションの削除
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 サイトの他の関連記事を参照してください。