例如项目中,在main这个文件下,有如下两个go源码文件,其声明的包都是main包
main.go文件
package main
import (
"fmt"
)
func main() {
fmt.Println("hello go main!")
TestMsg.Message = "hello test struct message"
Test();
}
test.go文件
package main
import (
"fmt"
)
type TestMsg struct {
Message string
}
func Test() {
fmt.Println("hello go test!")
}
这样的代码结构,在运行时,由于main这个package下有多个源码文件,它们一起组成了main这个package的完整功能,所以运行时,需要把main下面的多个源文件都指定
linux平台下运行: go run *.go
windows平台下,由于windows命令行不支持*这个通配符,所以只能先build为exe可执行文件后,再运行, 编译的命令,需要指定main这个文件夹下面所有的go源码文件
go build .\main\ && app.exe
但是通常情况下,我们应该避免在main这个package下,新建多个go源码文件,main这个package作为入口,相当于main函数所在的包,应该保持为仅一个go源码文件即可。