Avatar ·

如何在同一个 main 包中运行包含多个文件的 Go 项目?

你好!我刚开始学习 Go 并遇到了一个问题。我有一个小项目,由多个文件组成,它们都在 `cmd` 文件夹中,并声明为 `package main`。结构如下: ``` myproject/ cmd/ main.go helpers.go config.go ``` 在 `main.go` 中,我调用了 `helpers.go` 中的函数,例如: ```go // main.go package main func main() { msg := getMessage() fmt.Println(msg) } ``` ```go // helpers.go package main func getMessage() string { return "Hello from helpers!" } ``` 当我尝试使用命令 `go run cmd/main.go` 运行项目时,出现错误: ``` # command-line-arguments ./main.go:6:14: undefined: getMessage ``` 我明白 Go 只看到了一个文件。如何正确运行项目,使得 main 包中的所有文件一起编译?是否需要使用 `go build` 或者有其他方法?另外,如果文件变得很多,这在 Go 中是否是常见做法?