Go パッケージ内のメソッドの検出
最初の 1 週間でお気づきのように、Go には動的に反復する直接的なメカニズムがありません。パッケージのメソッドを通じて。 Python などの言語とは異なり、Go はパッケージの内容をイントロスペクトしません。
この設計上の決定は、実行可能ファイルで明示的に参照される関数と変数のみを保持する Go の厳密なコンパイル プロセスに由来しています。未使用の関数または変数はコンパイル時に破棄されます。その結果、潜在的に不完全なシンボルのセットを反復処理することは無意味になり、実装されません。
代替アプローチ
この制限を回避するには、次のオブジェクトを含む配列を作成することを検討してください。操作したいタイプ。たとえば、電卓のシナリオでは、
var calculators = []*calculator.Calc{&calculator.Add{}, &calculator.Sub{}, &calculator.Mult{}, ...}
という配列を定義できます。その後、この配列を反復処理して、各 calculator.Calc オブジェクトの First メソッドと Second メソッドを呼び出します。このアプローチは少し冗長に見えるかもしれませんが、プログラムで既知のメソッドの完全なセットを反復処理できます。
以上がGo パッケージのメソッドを反復処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。