go项目,main这个package有多个go源码文件,如何运行?

例如项目中,在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源码文件即可。


版权声明:本文为liuyouzhang89原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。