Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menyelesaikan ralat 'tugasan untuk masuk dalam peta nil' dalam golang?

Bagaimana untuk menyelesaikan ralat 'tugasan untuk masuk dalam peta nil' dalam golang?

WBOY
Lepaskan: 2023-06-24 16:26:39
asal
2048 orang telah melayarinya

Dalam proses menggunakan golang untuk pembangunan, kita sering menghadapi ralat "tugasan untuk masuk dalam peta nihil". Ralat ini sering berlaku apabila kami cuba memasukkan pasangan nilai kunci ke dalam peta sifar. Dalam artikel ini, kita akan belajar bagaimana untuk mengelakkan kesilapan ini.

Untuk lebih memahami ralat ini, kita perlu memahami dahulu apa itu peta. Dalam golang, peta ialah struktur data yang menyimpan pasangan nilai kunci. Melalui peta, kami boleh mengendalikan pasangan nilai kunci dengan mudah, seperti menambah, mengubah suai, memadam, dsb.

Apabila kami mula-mula mula menggunakan peta, kadangkala coretan kod berikut akan dipaparkan:

var m map[string]int
m["one"] = 1
Salin selepas log masuk

Dalam kod ini, kami mula-mula mengisytiharkan peta bernama m, dan kemudian cuba menambah pasangan nilai kunci "one:1" ke dalam peta . Walau bagaimanapun, menjalankan kod ini akan mendapat mesej ralat berikut:

panic: assignment to entry in nil map
Salin selepas log masuk

Ralat ini menunjukkan bahawa kami cuba menambah pasangan nilai kunci pada peta sifar, yang tidak dibenarkan. Jadi, bagaimana untuk mengelakkan kesilapan ini?

Pertama, kita boleh memulakan peta melalui fungsi make, seperti yang ditunjukkan di bawah:

m := make(map[string]int)
m["one"] = 1
Salin selepas log masuk

Dalam kod contoh ini, kita menggunakan fungsi make untuk memulakan peta, dan kemudian kita boleh menambah pasangan nilai kunci padanya. Melakukan ini akan mengelakkan ralat "tugasan untuk masuk dalam peta kosong".

Selain itu, apabila kita perlu menambah pasangan nilai kunci pada peta sedia ada, kita perlu menyemak dahulu sama ada peta itu kosong. Jika ia kosong, kita perlu memulakannya dahulu dan kemudian mengendalikannya. Kod sampel adalah seperti berikut:

var m map[string]int
if m == nil {
    m = make(map[string]int)
}
m["one"] = 1
Salin selepas log masuk

Akhir sekali, kami juga boleh menggunakan sync.Map untuk mengelakkan ralat ini. sync.Map ialah pelaksanaan peta selamat-benang yang disediakan dalam pustaka standard golang Ia boleh mengendalikan situasi peta sifar secara automatik, dengan itu mengelakkan ralat "tugasan untuk masuk dalam peta sifar". Kod sampel adalah seperti berikut:

var m sync.Map
m.Store("one", 1)
Salin selepas log masuk

Ringkasnya, ralat "tugasan untuk masuk dalam peta kosong" adalah salah satu ralat biasa dalam proses pembangunan golang Kita perlu mengelakkan ralat ini dengan memulakan peta dan menyemak sama ada peta kosong. Selain itu, kami juga boleh menggunakan sync.Map untuk mengelakkan ralat ini.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat 'tugasan untuk masuk dalam peta nil' dalam golang?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan