Dav*_*vid 41 jetbrains-ide go goland
我正在 GoLanguage 中做一个项目,并使用 Jetbrains 的 GoLand 作为 IDE。GoLand 在 IDE 中向我显示一条错误消息(“未解析的引用”),但仍然可以正确编译和运行。
这是我在 stackoverflow 上找到的一些代码的类似(但更简单)示例(Go - append to slice in 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)
}
Run Code Online (Sandbox Code Playgroud)
box.AddItem(item1)并被box.AddItem(item2)标记为红色作为错误。如果我将光标移到它上面,它会显示 ( unresolved reference "AddItem")。然而代码编译并运行。由于这是另一个 stackoverflow 问题的解决方案,因此我认为代码没有错。此外,我找不到任何错误。
有人可以帮忙吗?非常感谢
[编辑:我从远程服务器加载代码并在我的私人电脑上本地编辑它。完成更改后,我将其上传到远程服务器(使用 GoLands 工具,如“浏览远程主机”)并在那里构建和编译它。使用完全相同的代码在本地尝试后,错误消息有时存在有时不存在。我完全糊涂了]
Pat*_*ick 80
我遇到了类似的问题,但它更为普遍。甚至像这样的事情fmt.Printf()也显示为未解决。能够通过转到File -> Invalidate Caches / Restart来解决该问题。
pan*_*l-p 36
我找到了解决这个问题的最佳方法。
呜呜呜,已修复
编辑:更好的方法是尝试在 Goland 菜单中使用这个,
file -> repair IDE
它将刷新索引模块
Tem*_*jin 33
今天我遇到了这个问题,我通过启用 go 模块集成来解决它。对于 “设置”->“其他设置”->“Go 模块”,然后启用 go 模块集成。如果您在项目中使用 go 模块,这将起作用。
小智 11
我的答案有点晚了,哈哈,但以防万一有人仍然遇到这个问题,我所做的就是删除文件.idea并在 GoLand 上重新加载项目(通过单击文件 -> 打开 -> 文件位置)。为我做了这个伎俩。
我无法在 GoLand 2020.2 中重现该问题。我建议升级到它。
\n如果这不能解决问题,那么您可以采取以下步骤来调查问题:
\nSettings/Preferences | Go | GOPATH?Settings/Preferences | Go | Go Modules,然后使用Alt+Enter | Sync packages of\xe2\x80\x8d\xe2\x80\x8d <project>小智 5
对于 Mac 用户,我通过将自定义标签设置为“unix”解决了这个问题。在Preferences > Go > Build Tags & Vendoring。在 中Custom Tags,输入unix.
我在用着GoLand 2022.1.2