Go パッケージ内のメソッドを動的に繰り返すにはどうすればよいですか?
Nov 16, 2024 pm 04:51 PMGo でのパッケージの動的反復
質問:
Go の初心者として、あなたは次の計算機を構築しています。現在は加算と減算をサポートしています。乗算や除算などの将来の機能を想定しています。しかし、addition.go ファイルとsubtraction.go ファイルの現在のアプローチは冗長であることがわかり、より動的なソリューションを求めています。電卓パッケージ内のすべてのメソッドを見つけて動的に反復処理する方法はありますか?
回答:
残念ながら、Go には組み込みメカニズムが提供されていません。パッケージの内容をイントロスペクトし、そのメソッドを動的に反復処理します。コンパイラには、明示的に参照される実行可能ファイル内の関数と変数のみが含まれます。不完全な可能性のあるシンボルのセットを反復処理することは、Go では有用とは見なされません。
代替解決策:
動的反復の代わりに、配列を使用して保持することができます。操作したい型のオブジェクトを選択し、その配列を反復処理します。このアプローチには、インターフェイスのスライスの作成が含まれます:
type Calc interface { First(x int) int Second(x int) int } var operations []Calc
その後、具象型のオブジェクトをスライスに追加できます:
operations = append(operations, &calculator.Add{}) operations = append(operations, &calculator.Sub{})
その後、スライスを反復処理して呼び出します。メソッドを動的に:
for _, operation := range operations { fmt.Println(operation.First(x)) fmt.Println(operation.Second(x)) }
このアプローチは、動的なイントロスペクションを必要とせずに、パッケージ内の電卓操作を反復する柔軟な方法を提供します。
以上がGo パッケージ内のメソッドを動的に繰り返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

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

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

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

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

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

ホットトピック











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

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

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

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

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

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