Rumah >pembangunan bahagian belakang >Golang >Go Maps: `make` vs. Map Literal – Bilakah Saya Perlu Menggunakan Yang Mana?

Go Maps: `make` vs. Map Literal – Bilakah Saya Perlu Menggunakan Yang Mana?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-13 12:48:14212semak imbas

Go Maps:  `make` vs. Map Literal – When Should I Use Which?

Menjelaskan Perbezaan Antara Permulaan Peta dengan dan tanpa "buat"

Apabila bekerja dengan peta Go, terdapat dua cara utama untuk memulakannya : menggunakan peta literal atau menggunakan fungsi "buat". Memahami nuansa halus antara kaedah ini adalah penting untuk mengoptimumkan prestasi kod.

Map Literals vs. "make"

Pendekatan kedua, menggunakan "make(map[string ]int)", secara konsisten mencipta peta kosong. Walau bagaimanapun, kaedah pertama, "var m = map[string]int{}", mewakili literal peta. Teknik ini dikhaskan untuk memulakan peta dengan nilai bukan kosong.

Contoh:

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

Huruf Peta Tanpa Nilai Awal

Mengerti contoh anda, "m := map[T]U{}", menghasilkan literal peta dengan tiada pasangan nilai kunci awal. Fungsi ini sama dengan "m := make(map[T]U)".

Pertimbangan Prestasi

Apabila memulakan peta kosong, hampir tiada prestasi perbezaan antara menggunakan literal peta atau "buat". Kedua-dua pendekatan menjana peta kosong dan menduduki jumlah memori yang sama.

Menentukan Kapasiti Permulaan

Kelebihan sebenar menggunakan "make" terletak pada keupayaannya untuk menentukan kapasiti awal untuk peta. Secara lalai, peta dimulakan dengan faktor pertumbuhan yang menggandakan saiznya setiap kali melebihi kapasitinya. Walau bagaimanapun, menggunakan "make" membolehkan anda menentukan saiz peta terlebih dahulu.

Contoh:

m := make(map[T]U, 50)

Kod di atas mencipta peta dengan ruang yang mencukupi untuk menampung sehingga 50 elemen. Pendekatan ini boleh membantu meminimumkan peruntukan memori masa hadapan jika anda menjangkakan saiz peta meningkat dengan ketara.

Atas ialah kandungan terperinci Go Maps: `make` vs. Map Literal – Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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