Masalah:
In Go , menggunakan struct tanpa nama sebagai nilai dalam perisytiharan peta menimbulkan amaran dengan Gogland, menimbulkan persoalan: apakah perbezaan antara perisytiharan struct{}{} dan {} dalam konteks sedemikian?
Jawapan:
Memahami semantik di sebalik kedua-dua sintaks ini adalah penting.
Lazimnya, tersurat komposit memerlukan pengisytiharan jenis eksplisit (cth., []int{1, 2, 3}). Walau bagaimanapun, apabila bekerja dengan peta, pengkompil boleh membuat kesimpulan jenis kunci dan nilai daripada jenis peta itu sendiri. Ini membolehkan sintaks literal komposit dipermudahkan, meninggalkan pengisytiharan jenis apabila nilai jenis yang sesuai disediakan.
Menurut Spesifikasi Go, dalam kes seperti ini, pengisytiharan jenis boleh dihapuskan apabila jenis literal komposit sepadan dengan jenis yang dijangkakan oleh peta. Tingkah laku ini pada mulanya adalah kesilapan tetapi menjadi ciri yang sah dalam Go 1.5.
Nota: Pengisytiharan jenis tidak boleh ditinggalkan apabila memulakan jenis literal komposit yang lain (mis., tatasusunan, kepingan).
Atas ialah kandungan terperinci Struktur Tanpa Nama dalam Peta Go: Apakah Perbezaan Antara `struct{}{} `dan `{}`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!