Memahami Perbezaan Antara Penciptaan Peta dengan dan tanpa make
Dalam Go, terdapat dua cara untuk memulakan peta:
var m = map[string]int{}
var m = make(map[string]int)
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"}
Huruf Peta Kosong
Sekarang, contoh dalam soalan anda:
m := map[T]U{}
Ini ialah literal peta tanpa nilai awal (pasangan kunci/nilai). Ini bersamaan dengan:
m := make(map[T]U)
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!