今天在写代码过程中发现在同一个包内,main.go中无法调用同一个包中的函数时,显示报错
client\main.go:45:10: undefined: login
说我的函数没有定义,我已经用go mod init初始化了项目,为什么还是不行?
文件结构:
├── login.go
└── main.go
上网查阅后发现,原因是Go
中 main
包默认不会加载其他文件, 而其他包都是默认加载的。如果 main
包有多个文件,则在执行的时候需要将其它文件都带上,即执行 go run .
在VSCODE中配置
{
"code-runner.executorMap": {
"go": "cd $dir && go run .",
},
"code-runner.executorMapByGlob": {
"$dir\\*.go": "go"
}
}