main包不同文件的无法相互调用的原因?

Aruforce · · 4227 次点击
如2楼所言,你需要 go run main.go xxx.go 或者简单一点 go run \*.go xxx.go 和 main.go 同属 main 包,但是你也得像上面那样去运行。 因为我们执行在 go run ... 这个命令的时候,后面跟的是一个go源代码文件列表参数,其中一个go文件必须要有一个 main 函数,作为程序的入口。 如果只是 go run main.go ,那么就会从这个文件里面去找程序的入口,注意,我们提供给 go run 命令的是 main.go 这个文件,而不是 main 包。所以go会从这个文件开始,理清楚包的依赖关系之类的,因为 xxx.go 这个文件不存在于 main.go 的引用关系中,所以在编译的时候,里面的内容对于 main.go 来讲是不可见的。 go test 也是同样的道理。
#5
更多评论
只能有一个main包吧
#1
main 包只能有一个,但是可以有多个文件。你是在执行 go run main.go 的时候出错了吧,因为你没把另一个文件包含进来,Test() 就不知道是啥了,你要这么跑 go run main.go func.go
#2