パッケージを動的に反復する
問題:
のバックグラウンドを持つ Go プログラマーPython は、拡張可能な機能 (加算、減算など) を備えた単純な計算機を作成する際に冗長になります。彼らは、電卓パッケージ内のすべてのメソッドを動的に反復処理してコードを簡素化し、機能を簡単に追加する方法を模索しています。
応答:
Go には単純なメカニズムがありません。パッケージをイントロスペクトするか、その内容を動的に反復します。コンパイラには、直接参照される実行可能ファイル内の関数と変数のみが含まれます。呼び出されない関数は省略されます。
代替解決策:
パッケージを動的に反復する代わりに、必要な型のオブジェクトを含む配列を作成することを検討できます。操作する。これにより、定義済みの一連の計算機操作を反復処理できます。
type Calc interface { First(x int) int Second(x int) int } calculator := []Calc{ &calculator.Add{}, &calculator.Sub{}, &calculator.Mul{}, &calculator.Div{}, } for _, calc := range calculator { x := 10 fmt.Println(calc.First(x)) fmt.Println(calc.Second(x)) }
配列を使用すると、パッケージを動的にイントロスペクトすることなく、特定の計算機メソッドを反復処理できます。メソッドが実行される順序も事前に定義されます。
以上が電卓用の Go パッケージ内のメソッドを動的に反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。