Struktur Tanpa Nama dalam Peta Go: Apakah Perbezaan Antara `struct{}{} `dan `{}`?

DDD
Lepaskan: 2024-10-30 03:55:03
asal
450 orang telah melayarinya

 Anonymous Struct in Go Maps: What's the Difference Between `struct{}{} `and `{}`?

Struktur Tanpa Nama: Menyelidiki Perbezaan antara struct{}{} dan {}

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.

Memecahkan Pengisytiharan

  • struktur{}{}: Ini ialah literal komposit yang terdiri daripada struct jenis struct tanpa nama{} dan nilai {}.
  • {}: Ini juga literal komposit, mewakili hanya nilai {} tanpa secara eksplisit menyatakan jenisnya.

Jenis Inferens dan Huruf Komposit

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.

Spesifikasi dan Pengawasan Go

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!