Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Kunci Komposit untuk Peta Hash dalam Go?

Bagaimana untuk Mencipta Kunci Komposit untuk Peta Hash dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 06:50:02432semak imbas

How to Create Composite Keys for Hash Maps in Go?

Mencipta Kekunci Komposit untuk Peta Hash dalam Go

Dalam Go, mentakrifkan kunci komposit untuk peta cincang melibatkan penggabungan berbilang nilai untuk mencipta kunci unik. Teknik ini berguna apabila anda ingin mengindeks data berdasarkan berbilang parameter, seperti pengkomputeran dan menyimpan nilai pow(x, y) dengan x dan y ialah integer.

Penyelesaian

Pendekatan yang paling mudah ialah mencipta struct yang mewakili kunci komposit, menggabungkan yang diperlukan medan:

type Key struct {
    X, Y int
}

Struktur ini mentakrifkan kunci dengan dua medan integer, X dan Y, yang boleh digunakan untuk mengenal pasti secara unik setiap entri dalam peta cincang:

m := map[Key]int{}
m[Key{2, 2}] = 4
m[Key{2, 3}] = 8

fmt.Println("2^2 = ", m[Key{2, 2}])
fmt.Println("2^3 = ", m[Key{2, 3}])

Menggunakan ini struct sebagai jenis kunci memastikan bahawa setiap entri dalam peta boleh dikenal pasti secara unik berdasarkan nilai X dan Y. Ini membolehkan anda mendapatkan semula nilai tersimpan yang sepadan dengan cekap menggunakan kunci komposit.

Pertimbangan Penting

Adalah penting untuk ambil perhatian bahawa menggunakan penunjuk sebagai jenis kunci harus dielakkan, kerana mereka membandingkan alamat memori dan bukannya nilai sebenar. Selain itu, tatasusunan boleh digunakan sebagai jenis utama, tetapi ia kurang serba boleh berbanding struct.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kunci Komposit untuk Peta Hash dalam Go?. 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