構造体ポインタをインターフェイスに変換する{}
次のような不変型宣言を指定します。
type foo struct {} func bar(baz interface{}) {}
Where baz bar 内の *foo ポインタに変換し直す必要があるため、この記事では変換方法について説明します。 &foo{} をインターフェイスに追加し、bar のパラメータとして使用します。
キャスト &foo ポインタを インターフェイス{}**
変換インターフェースへの *foo ポインタ{}は簡単:
f := &foo{} bar(f) // Every type implements interface{}.
インターフェース{}を foo*
に変換して *foo 値を取得しますインターフェース{}では、次の 2 つのアプローチが利用可能です:
Typeアサーション:
func bar(baz interface{}) { f, ok := baz.(*foo) if !ok { // baz is not a *foo } // f is a *foo }
タイプスイッチ:
func bar(baz interface{}) { switch f := baz.(type) { case *foo: // f is a *foo default: // f is some other type } }
以上が*foo ポインタをインターフェイスに変換して Go に戻すにはどうすればよいですか?{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。