Rumah > pembangunan bahagian belakang > Golang > Pergi Peta: `map[string]int{}` lwn. `make(map[string]int)`: Apakah Perbezaannya?

Pergi Peta: `map[string]int{}` lwn. `make(map[string]int)`: Apakah Perbezaannya?

Patricia Arquette
Lepaskan: 2025-01-03 06:53:40
asal
890 orang telah melayarinya

Go Maps: `map[string]int{}` vs. `make(map[string]int)`: What's the Difference?

Memahami Perbezaan Antara Permulaan peta dengan dan tanpa make

Apabila berurusan dengan peta dalam Go, anda mungkin menghadapi dua bentuk permulaan yang berbeza:

1. Menggunakan Literal Peta:

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

2. Menggunakan Fungsi Buat:

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

Perbezaan Fungsian:

Perbezaan utama terletak pada cara peta dimulakan. Bentuk kedua, menggunakan make, sentiasa menghasilkan peta kosong. Walau bagaimanapun, bentuk pertama ialah kes unik bagi literal peta. Literal peta boleh membina peta dengan pasangan nilai kunci awal. Contohnya:

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

Kesamaan dan Prestasi:

Versi umum contoh anda,

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

sama dengan menggunakan make:

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

Dari segi prestasi, kedua-dua pendekatan berkelakuan sama apabila mencipta kosong peta.

Kapasiti Permulaan:

Kelebihan utama menggunakan make ialah keupayaan untuk menentukan kapasiti awal. Ini boleh dilakukan dengan menambahkan hujah integer pada fungsi make:

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

Ini memulakan peta dengan ruang yang diperuntukkan untuk 50 elemen. Pra-peruntukan boleh mengurangkan peruntukan memori masa hadapan jika anda menjangkakan pertumbuhan peta.

Atas ialah kandungan terperinci Pergi Peta: `map[string]int{}` lwn. `make(map[string]int)`: Apakah Perbezaannya?. 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