Bagaimanakah saya boleh menggunakan struct dengan berkesan untuk mencipta kunci komposit dalam peta Go?

Mary-Kate Olsen
Lepaskan: 2024-11-10 04:12:03
asal
223 orang telah melayarinya

How can I effectively use structs to create composite keys in Go maps?

Menggunakan Structs untuk Kekunci Komposit dalam Peta Go

Dalam Go, kunci komposit dalam peta cincang membenarkan penggabungan berbilang nilai untuk membentuk kunci unik untuk peta itu. Tidak seperti kunci komposit dalam pangkalan data, ini digunakan untuk tujuan pengiraan.

Untuk menyimpan nilai pengiraan pow(x, y) dalam jadual cincang, anda boleh mentakrifkan kunci komposit menggunakan struct:

type Key struct {
    X, Y int
}
Salin selepas log masuk

Struktur ini menggabungkan nilai x dan y untuk mencipta kunci. Anda boleh menggunakan kunci ini dalam peta seperti berikut:

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}])
Salin selepas log masuk

Output:

2^2 = 4
2^3 = 8
Salin selepas log masuk

Struktur digunakan sebagai kunci kerana ia menyediakan cara mudah untuk mewakili berbilang nilai sebagai satu unit . Mereka memastikan operator perbandingan yang betul (== dan !=) ditakrifkan, membenarkan pengambilan kunci yang cekap daripada peta.

Menggunakan penunjuk sebagai jenis kunci tidak disyorkan, kerana perbandingan penunjuk hanya menyemak alamat memori dan bukannya nilai sebenar . Tatasusunan juga boleh digunakan sebagai jenis utama, tetapi struktur menawarkan lebih fleksibiliti.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan struct dengan berkesan untuk mencipta kunci komposit dalam peta 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