Go でのリフレクションを使用した動的関数の作成
問題:
新しい関数を作成できますかGo のリフレクションを使用して動的に作成され、インターフェイスにバインドされます。機能?
課題:
Go のインターフェイスを使用して RPC スタイルのインターフェイスを実装するには、次の目的でリフレクションを使用する必要があります:
ただし、リフレクションは、インターフェイスを実装する値を作成する直接的な方法を提供しません。カスタムを使用して関数.
解決策:
残念ながら、質問の最初の枠組みの時点では、Go で純粋にリフレクションを通じてアタッチされたメソッドを使用して新しい関数を作成することはできません。安全でないパッケージを使用したハッキングを調査することは可能かもしれませんが、それは困難な作業になるでしょう。
代替アプローチ:
ユーザーが試みているより広範な問題に取り組むには解決するには、次のような代替アプローチを検討できます。
注:
Go 1.5 の導入により、reflection.FuncOf とreflect.MakeFunc が追加されたことは注目に値します。これらの機能は、関数を作成してインターフェイスにバインドする機能を提供し、質問で説明されている最初の課題に対処します。
以上がGo のリフレクションは動的関数を作成してインターフェイスにバインドできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。