没有C背景,只有"初学者" Go的经验我试图弄清楚main.go
是否真的需要或只是一个惯例。
我希望创建一个简单的网络API,但有人可以为我澄清这个吗?
答案 0 :(得分:16)
main.go
不需要文件。
但是,可执行文件需要main
包func main()
。
您可以随意调用您的文件名。
E.g
<强> myawesomeapp.go 强>
package main
func main() {
fmt.Println("Hello World")
}
正在运行go run myawesomeapp.go
将按预期工作。
答案 1 :(得分:5)
对于Web服务器(可执行文件),您需要package main
func main()
,但不需要将其称为main.go - 文件名可以是任何内容你想要它。来自language spec:
计划执行
通过链接单个未经插入的包来创建完整的程序 用它导入的所有包调用主包, 及物动词。主包必须具有包名main和声明 一个函数main,它不带参数,也不返回任何值。
func main() { … }
程序执行从初始化主程序包开始,然后 调用函数main。当该函数调用返回时, 程序退出。它不等待其他(非主要)goroutines 完整。