(golang初心者)
基礎となる API と対話する 2 つの関数があり、これら 2 つの関数を再試行でラップしたいとします。ただし、2 つの関数の入力パラメーターは異なります。
Python では、functools.partial
を使用して部分 func オブジェクトを作成し、それを
上記の簡単な例を使用して、golang で同様のことを行うにはどうすればよいでしょうか? functools.partial
パッケージ関数を見ましたが、その関数では部分関数を作成するときにすべての引数を渡すことができないようです。
この再試行パターンを実現する完全に異なるパターンは golang にありますか?
functools.partial
を正しく理解していれば、関数をカリー化できるようになります。
Go では、関数をカリー化するためにクロージャを使用できます:
リーリーgo はファーストクラス関数をサポートしているため、関数を変数として渡すことができます。この例では、(a) 任意の int-->int
関数と (b) int
を受け入れ、次の結果を返す関数 do
を作成します。この関数は int
に適用されます:
また、do
には int-->int
のみが必要なので、たとえば neg
も次のように使用できます。
リーリー
https://www.php.cn/link/7a43ed4e82d06a1e6b2e88518fb8c2b0
以上がgolang は functools.partial または同様のメソッドを使用して、他の関数のラップを完了しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。