Rumah >pembangunan bahagian belakang >Golang >Mengapa Pengkompil Go Saya Menunjukkan Ralat 'Diisytiharkan tetapi Tidak Digunakan' Walaupun Pembolehubah Saya Nampaknya Digunakan?
Diisytiharkan tetapi Tidak Digunakan Ralat dalam Go Compiler
Dalam program Go yang disediakan, pengkompil melaporkan ralat "pembolehubah diisytiharkan dan tidak digunakan" untuk pembolehubah m, err, dan kunci, walaupun pada hakikatnya kod tersebut nampaknya menggunakannya. Ini boleh mengelirukan kerana ia kelihatan seperti percanggahan.
Dalam kod asal:
func img() { ... }
Pembolehubah m dan err diisytiharkan dalam skop pernyataan if. Ini bermakna bahawa mereka hanya boleh dilihat dalam cabang pelaksanaan tertentu itu dan tidak boleh digunakan di luarnya. Akibatnya, pengkompil membenderakannya sebagai diisytiharkan tetapi tidak digunakan.
Untuk menyelesaikan masalah ini, pembolehubah m dan ralat perlu diisytiharkan dalam skop fungsi, sebelum pernyataan if. Ini akan menjadikannya kelihatan di seluruh fungsi dan membolehkannya digunakan seperti yang dimaksudkan.
Begitu juga, pembolehubah utama diisytiharkan dalam fungsi tetapi tidak pernah digunakan. Ini boleh dialih keluar untuk menangani amaran pengkompil.
Kod berikut menukar skop pembolehubah m dan err dan mengalih keluar pembolehubah kunci yang tidak digunakan:
func img() { var m Image key := datastore.NewKey("Comparison", r.FormValue("id"), 0, nil) ... // Rest of the code unchanged }
Dengan perubahan ini, pengkompil amaran harus diselesaikan.
Atas ialah kandungan terperinci Mengapa Pengkompil Go Saya Menunjukkan Ralat 'Diisytiharkan tetapi Tidak Digunakan' Walaupun Pembolehubah Saya Nampaknya Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!