我目前在我的主程序包中有一个名为的文件main.go.如何在main.go不创建单独的包的情况下将内容拆分为多个文件,因为代码不可重用.
我想要一个像这样的目录结构:
$ ls foo
main.go
bar.go
Run Code Online (Sandbox Code Playgroud)
bar.go
package main
import "fmt"
func Bar() {
fmt.Println("Bar")
}
Run Code Online (Sandbox Code Playgroud)
然后进去 main.go
package main
func main() {
Bar()
}
Run Code Online (Sandbox Code Playgroud)
但是go run main.go给了我:
# command-line-arguments
./main.go:4:2: undefined: Bar
Run Code Online (Sandbox Code Playgroud) 我是 Go 的新手,所以请耐心等待。我已经在本地机器上安装了最新版本的 Go,从https://github.com/rrrkren/topshot-sales下载了源代码并将项目代码放在我的 GOPATH 中。当我go run go/main.go在命令提示符下运行它时,出现这些错误
go\main.go:8:2: no required module provides package github.com/onflow/flow-go-sdk/client: go.mod file not found in current directory or any parent directory; see 'go help modules'
go\main.go:6:2: no required module provides package github.com/rrrkren/topshot-sales/topshot: go.mod file not found in current directory or any parent directory; see 'go help modules'
go\main.go:9:2: no required module provides package google.golang.org/grpc: go.mod file not found in current directory or any parent directory; see 'go help modules'
Run Code Online (Sandbox Code Playgroud)
即使 go.mod …
gopls 需要在工作区的根目录下有一个模块。您可以通过将每个模块作为工作区文件夹打开来处理多个模块。此工作流程的改进即将推出 ( https://github.com/golang/go/issues/32394 ),您可以在此处了解更多信息:https : //github.com/golang/go/issues/36899。