インターフェイスへの構造体ポインターのキャスト
構造体 foo と関数 bar の定義が柔軟性に欠けていることを考慮して、この質問は次の解決策を求めます。 foo へのポインタを bar のパラメータとして使用するインターフェースに変換します。{}さらに、bar 内の foo 構造体ポインタに戻す変換も必要です。
インターフェースへの変換{}
&foo{} をインターフェースに変換するには、{}プロセスは簡単です:
f := &foo{} bar(f) // Every type implements interface{}.
Conversion Back *foo
インターフェースから元の *foo を取得するには、次の 2 つのメソッドが利用可能です:
Type Assertion
func bar(baz interface{}) { f, ok := baz.(*foo) if !ok { // baz was not of type *foo. The assertion failed. } // f is of type *foo }
タイプスイッチ
func bar(baz interface{}) { switch f := baz.(type) { case *foo: // f is of type *foo default: // f is some other type } }
以上が構造体ポインタをインターフェースにキャストして Go に戻すにはどうすればよいですか?{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。