Ralat Pembolehubah Tidak Ditakrifkan dalam Go
Apabila menyusun atur cara Go, menghadapi ralat "undefined err" dan "undefined user" boleh mengelirukan untuk pemula. Memahami skop pembolehubah adalah penting untuk menyelesaikan isu sedemikian.
Dalam coretan kod yang disediakan, pembolehubah ralat dan pengguna diisytiharkan dalam dua penyataan if. Ini mengehadkan skop mereka kepada blok if masing-masing. Oleh itu, apabila pengguna dirujuk dalam blok kod selepas pernyataan if-else, pengkompil tidak dapat mencari pengisytiharannya.
Kemas kini: Menjelaskan Pembayang Pembolehubah
Dalam kemas kini kod, pengguna diisytiharkan di luar blok jika dalam. Walau bagaimanapun, pengisytiharan pembolehubah pendek dalam blok mencipta pembolehubah pengguna baharu, dengan berkesan membayangi pembolehubah pengguna luar. Memandangkan pembolehubah pengguna dalaman ini tidak digunakan, pengkompil mengeluarkan ralat "pengisytiharan pengguna dan tidak digunakan".
Penyelesaian: Pengisytiharan Pembolehubah Betul
Untuk menyelesaikan ralat ini, adalah disyorkan untuk mengisytiharkan kedua-dua pengguna dan ralat sebelum blok if-else dengan tugasan yang betul:
user := core.User{} var err error if req.Id == nil { user, err = signup(C, c, &req) } else { user, err = update(C, c, &req) }
Sebagai alternatif, satu pengisytiharan baris boleh digunakan:
user, err := core.User{}, error(nil)
Dengan mematuhi garis panduan skop ini, pembangun boleh mengelakkan ralat berkaitan pembolehubah tersebut dan memastikan pelaksanaan program yang betul.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'undefined err\' dan \'undefined user\' dalam My Go Code?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!