问题:从其他包导出的函数未定义,在 main.go 内部不可见
解决方案: 将main.go放入单独的文件夹中(将其命名为app或 main,没关系)。只有 go.mod 保留在根目录中,其中包含文件夹“ app ”和“package1”“package2”等。在此 VSCode 在保存时自动添加导入之后,我什至不需要执行任何操作。如果我在 root 中有 main.go 那么它不起作用(大多数时候),因为它不能“看到”其他模块(未定义)的函数。
我在这里找到了解决方案(参见 davidbost 的帖子)。安德烈·迪亚特洛夫(Andrey Dyatlov)在本页上的解决方案也工作了一段时间,然后停止工作。
我大概花了 10 个小时的尝试、错误和搜索。 希望以上内容对其他人有帮助。谢谢大家!
_______________________________________________________________________
原问题描述:
Windows 10、Go 1.17、带有 Go 扩展的 VS Code。
您好,我是 Go 新手,由于以下问题,我无法遵循单个教程。当我在与 main.go 相同的目录(或同一目录的文件夹内)创建另一个 .go 文件时,我收到错误消息.\main.go:7:2: undefined: SayHi
main.go 文件:
package main
import "fmt"
func main() {
fmt.Println("1st")
SayHi()
}
Run Code Online (Sandbox Code Playgroud)
/something 文件夹中的另一个 .go 文件:
package something
import "fmt"
func SayHi() {
fmt.Println("Hi!")
}
Run Code Online (Sandbox Code Playgroud)
运行 go run main.go …