Je fais un projet dans le GoLangage et j'utilise GoLand de Jetbrains comme IDE. GoLand me montre dans le IDE un message d'erreur ("référence non résolue"), mais compile et fonctionne toujours correctement.
Voici un exemple similaire (mais plus simple) de code que j'ai trouvé ici sur stackoverflow ( Go - append to slice in struct ). Le même message d'erreur apparaît. Mais évidemment, j'ai implémenté la méthode quelques lignes ci-dessus.
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)
}
box.AddItem(item1)
et box.AddItem(item2)
sont marqués en rouge comme une erreur. Si je déplace mon curseur au-dessus, il dit (unresolved reference "AddItem"
). Pourtant, le code se compile et s'exécute. Et comme c'était la solution à une autre question de stackoverflow, je ne pense pas que le code soit faux. De plus, je n'y trouve aucune erreur.
Quelqu'un peut-il aider? Merci beaucoup
[EDIT: je charge le code depuis un serveur distant et je le modifie localement sur mon PC privé. Après avoir terminé mes modifications, je le télécharge sur le serveur distant (en utilisant des outils GoLands tels que "Parcourir l'hôte distant") et le construit et le compile là-bas. Après l'avoir essayé localement avec le même code, le message d'erreur est parfois présent et parfois non. Je suis totalement confus]
J'ai eu le même problème et il a été résolu bizarrement. J'ai donc installé et ouvert le projet dans vscode
afin de continuer à coder. Il a commencé à installer une extension appelée gopls
. Une fois l'installation terminée, je suis retourné à GoLand pour fermer le projet, mais j'ai attendu la fin de l'indexation. Soudain, les références étaient vertes!
Je ne peux pas reproduire le problème dans GoLand 2019.3.1. Je suggère de le mettre à niveau.
Si le problème persiste, veuillez décrire où le problème se produit. D'après ce que je peux voir sur la capture d'écran, il semble que le fichier soit un fichier Scratch, pas un fichier de projet ordinaire.