"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!