Ralat Rujukan Tidak Selesai GoLand IDE Walaupun Kod Sah
Pengguna GoLand IDE oleh JetBrains kadangkala menghadapi mesej ralat "rujukan tidak dapat diselesaikan" untuk kod yang menyusun dan berjalan dengan betul. Isu ini amat membingungkan apabila rujukan itu sah dan kaedah ditakrifkan berdekatan.
Satu contoh khusus ialah kod berikut:
package main import ( "fmt" ) type MyBoxItem struct { Name string } type MyBox struct { Items []MyBoxItem } func (box *MyBox) AddItem(item MyBoxItem) { box.Items = append(box.Items, item) } func main() { item1 := MyBoxItem{Name: "Test Item 1"} item2 := MyBoxItem{Name: "Test Item 2"} box := MyBox{} box.AddItem(item1) box.AddItem(item2) // checking the output fmt.Println(len(box.Items)) fmt.Println(box.Items) }
Walaupun pelaksanaan kaedah AddItem yang betul dalam MyBox taip, GoLand menandakan kotak.AddItem(item1) dan box.AddItem(item2) dalam warna merah, menunjukkan rujukan yang belum diselesaikan kepada "TambahItem."
Penyelesaian:
Seperti yang dicadangkan oleh pengguna yang mengalami isu yang sama, membatalkan cache dan memulakan semula GoLand mungkin menyelesaikan ralat. Untuk melakukan ini:
Memulakan semula GoLand selepas tindakan ini harus menghapuskan ralat "rujukan tidak dapat diselesaikan" untuk yang terjejas kod. Penyelesaian ini didapati berkesan dalam beberapa kes.
Atas ialah kandungan terperinci Mengapa GoLand Menunjukkan Ralat 'Rujukan Tidak Selesai' untuk Kod Go yang Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!