Mesej ralat "err declared and not used" ialah isu kompilasi biasa dalam Go. Ia timbul apabila pembolehubah diisytiharkan tetapi tidak digunakan dalam skop. Untuk memahami isu ini, mari kita mendalami coretan kod yang diberikan:
package main import ( "fmt" ) func main() { var ( err error dto = make(map[string]interface{}) ) dto[`thing`], err = getThings() fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
Dalam kod ini, pembolehubah err diisytiharkan tetapi tidak digunakan untuk mengendalikan sebarang ralat. Akibatnya, pengkompil mengeluarkan ralat "diisytiharkan dan tidak digunakan". Ia bukan isu skop atau bayangan, kerana pembolehubah ralat diisytiharkan dengan betul dalam fungsi utama.
Menurut Soalan Lazim Go, kehadiran pembolehubah yang tidak digunakan boleh menunjukkan potensi pepijat. Walau bagaimanapun, import yang tidak digunakan hanya melambatkan penyusunan. Pembolehubah yang diisytiharkan mesti digunakan dan dalam kes ini, ralat tidak ditetapkan atau digunakan untuk pengendalian ralat.
Salah satu cara untuk menangani perkara ini adalah dengan memintas semakan ralat:
var _ = err
Sebagai alternatif, anda boleh menggunakan err untuk pengendalian ralat sebenar:
if err != nil { fmt.Println(err.Error()) return }
Walau bagaimanapun, ia biasanya dinasihatkan untuk menggunakan ralat untuk semakan ralat dan bukannya hanya memberikannya.
Kesimpulannya, ralat "err diisytiharkan dan tidak digunakan" timbul apabila pembolehubah diisytiharkan tetapi tidak digunakan dalam skopnya. Ini boleh diselesaikan dengan sama ada memintas pemeriksaan ralat atau menggunakan pembolehubah untuk tujuan yang dimaksudkan, seperti pengendalian ralat.
Atas ialah kandungan terperinci Mengapa Adakah Go Memberi Ralat \'err declared and not used\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!