我正在用GoLanguage做一个项目,并使用Jetbrains的GoLand作为集成开发环境。GoLand在集成开发环境中向我显示了一条错误消息(“未解析的引用”),但仍然可以正确编译和运行。
下面是我在stackoverflow (Go -追加到struct中的切片)。出现相同的错误信息。但是很明显,我已经在上面的几行代码中实现了这个方法。
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)
和box.AddItem(item2)
标记为红色表示错误。如果我将光标移到它上面,它会显示(unresolved reference "AddItem"
)。然而,代码可以编译并运行。由于这是另一个堆栈溢出问题的解决方案,我不认为代码是错误的。此外,我找不到其中的任何错误。
有人能帮忙吗?非常感谢
编辑:我从远程服务器加载代码,并在我的私人pc上本地编辑它。完成更改后,我将其上传到远程服务器(使用“浏览远程主机”之类的GoLands工具),并在那里构建和编译它。在使用完全相同的代码在本地尝试之后,错误消息有时存在,有时不存在。我完全糊涂了
发布于 2020-04-22 10:49:23
我也遇到过类似的问题,但它要普遍得多。甚至像这样的事情fmt.Printf()
显示为未解决。能够通过转到文件->使缓存无效/重新启动。
发布于 2021-01-11 22:51:08
我使用的是go模块,它的解决方法是:
发布于 2021-02-25 11:37:21
我刚刚从Goland中删除了这个项目,并从现有文件中重新创建了它。这很奇怪,但很管用。
https://stackoverflow.com/questions/59556394
复制相似问题