在同一包中找不到结构

突然,vscode 无法获取同一包中不同文件中的访问结构体。


错误显示未定义的结构


之前vscode能够跨文件实例化struct(vscode+go1.12.4)


示例代码如下:


文件1 a.go


package main


import "fmt"


type su struct {

    Sfd string

    Sf  int

}


func (sed *su) do() {

    fmt.Println(sed.Sfd + string(sed.Sf))

}



文件2 main.go


package main


import "fmt"


func main() {

    d := su{}

    fmt.Println(d)

}


这两个文件在同一个包中


有人遇到同样的问题吗?


ABOUTYOU
浏览 178回答 3
3回答

婷婷同学_

实际上,语言服务器有时会崩溃。打开命令面板并输入“语言服务器”。应显示一条命令“重新启动语言服务器”。重新启动 VSCode 可能就足够了。

MM们

在 GoLand 中,您可以将运行类型从文件更改为包。

慕容森

我也遇到过同样的问题。su通过之前使用包名称来指向类型(在您的情况下)就足够了。例如:(d := mypackage.su{}即使您从同一个包但不同的源文件中使用它)。它在我的情况下有效,但出于某种原因,GoLand IDE 没有建议这样的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go