1

突然,vscode 无法访问同一个包中的结构,但不同的文件。

错误显示未定义的结构

以前 vscode 能够跨文件实例化结构(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)
}

这两个文件在同一个包中

有人遇到过同样的问题吗?

4

3 回答 3

1

在 GoLand 中,您可以将 Run 类型从 file 更改为 Package。

在此处输入图像描述

于 2021-04-02T13:07:59.883 回答
0

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

于 2019-08-05T05:15:08.933 回答
0

我有同样的问题。su之前使用包名称来指向类型(在您的情况下)就足够了。例如:(d := mypackage.su{}即使您从同一个包但不同的源文件中使用它)。它适用于我的情况,出于某种原因,GoLand IDE 没有建议这样的解决方案。

于 2021-10-14T21:05:08.343 回答