GO初学者,有个入门问题想请教大家

我在同一文件夹下,创建两个文件,因为必须为同包原则,所以都命名为main,如下代码

test.go

package main
import (
"fmt";
)
func main(){
fmt.Println("Hello world!");
fmt.Println(add(1,2));
}

cal.go

package main
func add(x, y int) int{
return x + y;
}

% go build cal.go
command-line-arguments
runtime.main_main·f: function main is undeclared in the main package

同一个文件夹下,可以使用两个package为main的文件吗?如果可以的话,应该如何操作呢?请指出我的问题,谢谢!

cal.go文件内没有定义main方法。
需要先一起编译,然后再执行。

go build . 

再go run cal.go test.go
或者直接go run *.go

img

你要编译的文件里必须包含main函数,你应该编译test.go才对

你好,你的问题主要集中在包、函数的疑问上,只要把根源疑问解决了,就知道是怎么执行呢,runtime.main_main·f: function main is undeclared in the main package是因为包下没找到main函数所以报了错,编译实际上就是编译了从main函数开始的流程代码,在main函数所在文件的同级目录下进行编译或运行即可,以下几种都可:
go build .
go build test.go
go build test.go cal.go
go run test.go cal.go
推荐:https://lan6193.blog.csdn.net/article/details/117254807 看完如果还有疑问欢迎随时提问