Apakah perbezaan antara antara muka yang dipetakan {} dan struktur jenis {}?

WBOY
Lepaskan: 2024-02-06 09:00:05
ke hadapan
872 orang telah melayarinya

Apakah perbezaan antara antara muka yang dipetakan {} dan struktur jenis {}?

Kandungan soalan

Saya baru sahaja membaca peta[Jenis]antaramuka{} menentukan peta kekunci jenis Jenis dengan nilai sebarang, iaitu antara muka{}.

Bukankah ini hampir sama dengan mentakrifkan struktur, iaitu taip Name struct{ key1; value1, ...., keyn: valuen}?

Apakah perbezaan antara dua jenis pemetaan ini?

Saya membaca https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go tetapi saya masih tidak faham perbezaannya.

Atau apakah perbezaan antara antara muka[jenis] peta{} yang kami takrifkan dengan cara yang lebih umum?

Kami menentukan setiap pasangan nilai kunci melalui struktur?

Adakah kedua-dua kaedah hanya mentakrifkan objek yang terdiri daripada pasangan nilai kunci?


Jawapan betul


Struktur dan peta ialah struktur data yang berbeza. Mereka mempunyai banyak perbezaan. Berikut adalah beberapa sahaja:

Struktur mempunyai bilangan medan tetap, yang diisytiharkan sekali dan tidak boleh diubah.

3a15cefd8a1cc7ac8a7f27a0d3f9b13

Peta boleh berkembang atau mengecut pada masa jalan.

vector := map[string]float64{
    "x": 2.0,
    "y": 2.0,
}

vector["z"] = 2.0
Salin selepas log masuk

Anda boleh mengulangi entri peta.

for key, val := range vector {
    fmt.Println(key, val)
}
Salin selepas log masuk

Struktur tidak menyokong lelaran (melainkan anda menggunakan refleksi).

Medan struktur boleh mempunyai label (atribut tambahan):

type User struct {
    Name          string    `json:"name"`
    Password      string    `json:"password"`
}
Salin selepas log masuk

Map tidak mempunyai ciri ini.

Atas ialah kandungan terperinci Apakah perbezaan antara antara muka yang dipetakan {} dan struktur jenis {}?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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!