Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Menukar *foo Penunjuk kepada antara muka{} dan Kembali ke Go?
Menukar Penunjuk Struktur kepada Antara Muka{}
Memberi pengisytiharan jenis tidak berubah seperti berikut:
type foo struct {} func bar(baz interface{}) {}
Di mana baz perlu ditukar kembali kepada *foo penuding dalam bar, artikel ini meneroka cara untuk menukar &foo{} ke dalam antara muka{} untuk digunakan sebagai parameter dalam bar.
Hantar &foo Penunjuk ke antara muka{}**
Menukar *foo penuding ke antara muka{} ialah mudah:
f := &foo{} bar(f) // Every type implements interface{}.
Menukar antara muka{} Kembali ke foo*
Untuk mendapatkan semula nilai *foo daripada antara muka{}, dua pendekatan tersedia:
Jenis Penegasan:
func bar(baz interface{}) { f, ok := baz.(*foo) if !ok { // baz is not a *foo } // f is a *foo }
Suis Jenis:
func bar(baz interface{}) { switch f := baz.(type) { case *foo: // f is a *foo default: // f is some other type } }
Atas ialah kandungan terperinci Bagaimanakah Saya Menukar *foo Penunjuk kepada antara muka{} dan Kembali ke Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!