Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memulakan Struktur Bersarang dengan Betul dalam Go?
Memulakan Nested Structs dalam Go [pendua]
Apabila bekerja dengan nested struct dalam Go, anda mungkin menghadapi ralat jika anda cuba untuk memulakan struct utama menggunakan antara muka sebagai jenis struct dalam. Untuk menangani isu ini, terdapat beberapa pendekatan yang boleh anda pertimbangkan:
Menduakan Jenis Struktur Tanpa Nama
Jika struct dalam ialah struct tanpa nama, anda boleh memulakan yang utama struct dengan menyatakan secara eksplisit jenis struct dalam sekali lagi semasa pembinaan:
type DetailsFilter struct { Filter struct { Name string ID int } } df := DetailsFilter{Filter: struct { Name string ID int }{Name: "myname", ID: 123}}
Memulakan Selepas Penciptaan
Sebagai alternatif, anda boleh mencipta struct utama dengan nilai sifar dan kemudian menetapkan nilai kepada struct bersarang selepas itu:
df := DetailsFilter{} df.Filter.Name = "myname2" df.Filter.ID = 321
Menggunakan Struktur Tanpa Nama Dinamakan Taip
Anda boleh mengelakkan ralat awal dengan mentakrifkan struct dalam sebagai jenis bernama dan bukannya struct tanpa nama:
type Filter struct { Name string ID int } type DetailsFilter struct { Filter Filter }
Kemudian anda boleh memulakan struct utama seperti berikut:
df := DetailsFilter{Filter: Filter{Name: "myname", ID: 123}}
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Struktur Bersarang dengan Betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!