Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Ralat 'Alamat Memori Tidak Sah atau Penolakan Penunjuk Nil' Semasa Mengakses Elemen Peta dalam Go?

Bagaimana untuk Mengendalikan Ralat 'Alamat Memori Tidak Sah atau Penolakan Penunjuk Nil' Semasa Mengakses Elemen Peta dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-05 21:11:121071semak imbas

How to Handle

"Peta[rentetan]*Taip "Alamat Memori Tidak Sah atau Penyingkiran Penunjuk Nil"

Apabila mengakses medan struktur, anda mungkin menghadapi ralat "alamat memori tidak sah atau penyahrujukan nol penunjuk ini biasanya menunjukkan bahawa penunjuk kepada struktur sama ada tidak dimulakan atau menunjuk ke alamat memori yang tidak sah.

Dalam kes anda, anda cuba menetapkan medan dalam peta keadaan Walau bagaimanapun, kerana peta keadaan ialah peta kosong penunjuk, anda mendapatkan nilai nol untuk *. guardduty.Condition from condition.

Menurut "Maps in Action" untuk Go, anda boleh menguji kehadiran kunci menggunakan dua nilai tugasan:

i, ok := m["route"]

Dalam tugasan ini, i diberikan nilai yang disimpan di bawah kekunci "laluan" Jika kunci itu tidak wujud, i diberikan nilai sifar jenis nilai (0). , ok, ialah boolean yang menunjukkan sama ada kunci itu wujud dalam peta.

Untuk menyelesaikan isu, ubah suai kod anda sebagai berikut:

if cond, ok := condition["id"]; !ok { // <nil> false
    log.Println("Pointer is null")
} else {
    // Initialize a new guardduty.Condition
    // and assign it to the required key
    nc := &guardduty.Condition{Equals: strPtr}
    condition["id"] = nc
}

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 'Alamat Memori Tidak Sah atau Penolakan Penunjuk Nil' Semasa Mengakses Elemen Peta 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