Rumah > pembangunan bahagian belakang > Golang > Apakah Perbezaan Antara `map[T]U{}` dan `make(map[T]U)` dalam Go?

Apakah Perbezaan Antara `map[T]U{}` dan `make(map[T]U)` dalam Go?

Patricia Arquette
Lepaskan: 2024-12-04 17:26:11
asal
409 orang telah melayarinya

What's the Difference Between `map[T]U{}` and `make(map[T]U)` in Go?

Memahami Perbezaan Antara Penciptaan Peta dengan dan tanpa make

Dalam Go, terdapat dua cara untuk memulakan peta:

var m = map[string]int{}
Salin selepas log masuk
var m = make(map[string]int)
Salin selepas log masuk

Walaupun ini mungkin kelihatan serupa, ia mempunyai implikasi dan praktikal yang berbeza pertimbangan.

Penciptaan Peta Kosong dengan make

Borang kedua, make(map[string]int), sentiasa mencipta peta kosong. Ini ialah cara mudah untuk memulakan peta tanpa pasangan nilai kunci awal.

Huruf Peta Bukan Kosong

Bentuk pertama, map[string]int{ }, ialah kes khas bagi literal peta. Literal peta membenarkan penciptaan peta bukan kosong dengan pasangan nilai kunci yang dipratakrifkan. Contohnya:

m := map[bool]string{false: "FALSE", true: "TRUE"}
Salin selepas log masuk

Huruf Peta Kosong

Sekarang, contoh dalam soalan anda:

m := map[T]U{}
Salin selepas log masuk

Ini ialah literal peta tanpa nilai awal (pasangan kunci/nilai). Ini bersamaan dengan:

m := make(map[T]U)
Salin selepas log masuk

Oleh itu, bentuk pertama pada dasarnya adalah jalan pintas untuk yang terakhir apabila membuat peta kosong.

Pertimbangan Prestasi

Dari segi prestasi, kedua-dua pendekatan adalah setanding untuk mencipta peta kosong. Walau bagaimanapun, make mempunyai fleksibiliti tambahan untuk menentukan kapasiti awal. Dengan menentukan kapasiti yang lebih besar, buat pra-peruntukkan ruang yang cukup dalam ingatan untuk memuatkan bilangan elemen tertentu. Ini boleh memberi manfaat untuk mengurangkan peruntukan masa hadapan jika anda tahu peta itu berkemungkinan besar.

Atas ialah kandungan terperinci Apakah Perbezaan Antara `map[T]U{}` dan `make(map[T]U)` dalam Go?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan