首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GoLand (JetBrains)显示错误消息"Unresolved“。但是代码会编译并运行

GoLand (JetBrains)显示错误消息"Unresolved“。但是代码会编译并运行
EN

Stack Overflow用户
提问于 2020-01-02 05:53:15
回答 13查看 16.1K关注 0票数 48

我正在用Jetbrains的GoLand集成开发环境写一个使用Go语言的项目。

在编写代码时,当引用确实存在并且程序可以正确编译和运行时,GoLand会向我显示一条错误消息,比如"unresolved reference"

下面是我在stackoverflow (Go - append to slice in struct)上找到的一些代码的类似(但更简单)的示例,以重现此问题。

即使我只实现了上面几行的方法,也会出现相同的错误消息。

代码语言:javascript
运行
复制
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工具),并在那里构建和编译它。在使用完全相同的代码在本地尝试之后,错误消息有时存在,有时不存在。我完全糊涂了

EN

回答 13

Stack Overflow用户

发布于 2020-04-22 10:49:23

我也遇到过类似的问题,但它要普遍得多。甚至像fmt.Printf()这样的东西也显示出未解决的问题。能够通过转到文件->无效缓存/重新启动来解决此问题。

票数 91
EN

Stack Overflow用户

发布于 2021-01-11 22:51:08

我使用的是go模块,它的解决方法是:

使用system environment

  • File->Invalidate

  • / Restart

中定义的GOPATH ->Go->GOPATH->GOPATH取消选择GOPATH

票数 6
EN

Stack Overflow用户

发布于 2021-02-25 11:37:21

我刚刚从Goland中删除了这个项目,并从现有文件中重新创建了它。这很奇怪,但很管用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59556394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档