struct dalam Go: struct{} dan struct{}{} Demystified
In Go, struct ialah binaan berkuasa yang digunakan untuk mentakrifkan data jenis. Walau bagaimanapun, terdapat dua kes khas struct yang patut diperiksa: struct{} dan struct{}.
struct{}: The Zero-Element Struct
struct{} ialah jenis struct tanpa unsur bernama. Ia berfungsi untuk beberapa tujuan berguna:
Penggunaan:
var emptyStruct struct{}
struktur{}: Literal Komposit Kosong
struct{}{} ialah literal komposit yang membina nilai struct kosong. Literal komposit membenarkan nilai permulaan yang ringkas bagi jenis tertentu. Untuk struct{}, sintaksnya mudah:
var emptyStructValue = struct{}{}
Penggunaan dalam Pelaksanaan Set
Satu aplikasi praktikal struct kosong ialah mencipta data seperti set struktur menggunakan peta Go. Memandangkan peta hanya membenarkan kunci unik, kita boleh menggunakan struct{} sebagai jenis nilai untuk mencipta satu set elemen unik tanpa menyimpan sebarang nilai:
type Set map[string]struct{} func main() { set := make(Set) set["foo"] = struct{}{} set["bar"] = struct{}{} _, ok := set["foo"] println("Is \"foo\" in the set?", ok) }
Kesimpulan
struct{} dan struct{}{} menawarkan ciri unik yang memanjangkan utiliti sistem struct Go. Struktur elemen sifar menyediakan kecekapan memori, manakala literal komposit kosong membantu dalam mencipta nilai struct kosong atau membina struktur data seperti set.
Atas ialah kandungan terperinci Go Structs: Apakah Perbezaan Antara `struct{}` dan `struct{}{}?`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!