Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat 'Tugasan untuk Kemasukan dalam Peta Nil' Semasa Mencipta Sekeping Peta dalam Go?
Ralat Masa Jalan: "Tugasan untuk Kemasukan dalam Peta Tiada" Selesai
Apabila cuba mencipta sekeping Peta, anda mungkin menghadapi masa jalan ralat "tugasan kepada kemasukan dalam peta kosong." Ralat ini menunjukkan bahawa anda cuba mengakses nilai Peta sifar, yang tidak dibenarkan.
Pernyataan Masalah
Anda mengalami ralat ini semasa membina tatasusunan Peta , setiap satu mengandungi dua kunci: "Id" dan "Pelabur." Kod yang dicuba adalah seperti berikut:
<code class="go">for _, row := range rows { invs := make([]map[string]string, length) for i := 0; i < length; i++ { invs[i] = make(map[string]string) invs[i]["Id"] = inv_ids[i] invs[i]["Investor"] = inv_names[i] } }</code>
Penyelesaian
Untuk menyelesaikan ralat ini, anda harus membuat sekeping Peta terus dalam gelung dan bukannya membuat Peta kosong dan memberikan nilai kepada mereka. Ini boleh dicapai menggunakan literal komposit:
<code class="go">for _, row := range rows { invs := make([]map[string]string, length) for i := 0; i < length; i++ { invs[i] = map[string]string{"Id": inv_ids[i], "Investor": inv_names[i]} } }</code>
Pendekatan Alternatif
Sebagai alternatif, anda boleh menggunakan struct untuk mewakili pelabur:
<code class="go">type Investor struct { Id int Investor string } for _, row := range rows { invs := make([]Investor, length) for i := 0; i < length; i++ { invs[i] = Investor{ Id: inv_ids[i], Investor: inv_names[i], } } }</code>
Menggunakan struct menyediakan perwakilan data anda yang lebih bersih dan berstruktur.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Tugasan untuk Kemasukan dalam Peta Nil' Semasa Mencipta Sekeping Peta dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!