Rumah > pembangunan bahagian belakang > Golang > Cara Mendapatkan Kekunci Peta dengan Selamat dalam Go: Menangani Isu Tidak Padan Jenis?

Cara Mendapatkan Kekunci Peta dengan Selamat dalam Go: Menangani Isu Tidak Padan Jenis?

Linda Hamilton
Lepaskan: 2024-12-31 01:34:10
asal
1030 orang telah melayarinya

How to Safely Retrieve Map Keys in Go: Addressing Type Mismatch Issues?

Cara Mendapatkan Kekunci Peta dalam Go

Apabila mendapatkan kunci daripada peta, adalah penting untuk memastikan keserasian jenis. Penaipan kuat Go memerlukan kekunci peta daripada jenis yang sama. Malangnya, jika fungsi Keys() anda menentukan peta jenis peta[antara muka{}]antara muka{}, tetapi peta sebenar anda ialah peta jenis[int]antara muka{}, anda akan menghadapi ralat tidak padan jenis.

Go Generik dan Keserasian Jenis

Go tidak menyokong generik, tidak seperti bahasa seperti Java atau C#. Ini memudahkan bahasa dan meningkatkan prestasi. Akibatnya, anda tidak boleh mencipta fungsi generik yang beroperasi pada peta daripada sebarang jenis kunci atau nilai.

Menyelesaikan Isu Ketakpadanan Jenis

Untuk menyelesaikan ketidakpadanan jenis, anda mempunyai beberapa pilihan:

  • Ubah suai fungsi Keys() untuk mengendalikan map[int]antara muka{} secara eksplisit, seperti yang ditunjukkan dalam ini kod:
func Keys(m map[int]interface{}) []int {
    keys := make([]int, len(m))
    i := 0
    for k := range m {
        keys[i] = k
        i++
    }
    return keys
}
Salin selepas log masuk
  • Sebagai alternatif, tukar peta kepada [antara muka{}]antara muka{}, memastikan keserasian jenis dengan fungsi Keys():
m2 := map[interface{}]interface{}{
    2: "string",
    3: "int",
}
Salin selepas log masuk
  • Anda juga boleh menggunakan pakej reflect, walaupun ia disertakan dengan prestasi implikasi.

Atas ialah kandungan terperinci Cara Mendapatkan Kekunci Peta dengan Selamat dalam Go: Menangani Isu Tidak Padan Jenis?. 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