ホームページ  >  記事  >  バックエンド開発  >  電卓用の Go パッケージ内のメソッドを動的に反復するにはどうすればよいですか?

電卓用の Go パッケージ内のメソッドを動的に反復するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-16 20:38:03179ブラウズ

How can I dynamically iterate through methods in a Go package for a calculator?

パッケージを動的に反復する

問題:

のバックグラウンドを持つ 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。