Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memulakan Struktur Terbenam dengan betul dalam Go?
Jenis Struktur Terbenam Golang: Memahami Sintaks dan Penggunaan
Apabila bekerja dengan jenis struct terbenam dalam Go, adalah penting untuk memahami sintaks dan penggunaan yang betul. Artikel ini menangani isu tidak dapat memulakan struct terbenam.
Masalah:
Pertimbangkan jenis berikut:
type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error }
Percubaan untuk mulakan ErrorValue menggunakan sintaks:
e := ErrorValue{Name: "alpha", Value: 123, Error: err}
hasil dalam ralat.
Penyelesaian:
Jenis terbenam, juga dikenali sebagai medan tidak dinamakan, dirujuk dengan nama jenis yang tidak layak. Dalam kod yang disediakan, sintaks untuk memulakan ErrorValue adalah tidak betul.
Mengikut spesifikasi bahasa Go, medan terbenam harus dimulakan menggunakan nama jenis tanpa nama medan. Berikut ialah sintaks yang betul:
e := ErrorValue{NamedValue: NamedValue{Name: "fine", Value: 33}, Error: err}
Sebagai alternatif, anda boleh meninggalkan nama medan daripada literal komposit:
e := ErrorValue{NamedValue{"fine", 33}, err}
Contoh:
package main import "fmt" type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error } func main() { e := ErrorValue{NamedValue{Name: "alpha", Value: 123}, fmt.Errorf("some error")} fmt.Println(e) }
Output:
{NamedValue:{Name:alpha Value:123} Error:some error}
Dengan memahami sintaks dan penggunaan jenis struct terbenam, anda boleh memanfaatkannya dengan berkesan dalam program Go anda.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Struktur Terbenam dengan betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!