在Go项目中是否需要main.go文件?

23

我没有C语言背景,只有 Go 语言的“初学者”经验,现在我想确定是否需要 main.go 文件,还是这只是一种约定。

我想创建一个简单的 Web API,但是请有经验的人能否为我澄清这个问题?

2个回答

39

main.go 文件并非必需。

但是,可执行文件需要具有 func main()main 包。

您的文件名可以随意命名。

例如:

myawesomeapp.go

package main

func main() {
  fmt.Println("Hello World")
}

运行go run myawesomeapp.go将按预期工作。


11
对于一个Web服务器(一个可执行文件),你需要有一个package main和一个func main(),但它的文件名可以是任意你想要的。根据语言规范

程序执行

通过将单一的未导入包(称为主包)与其导入的所有包进行传递性链接来创建完整的程序。主包必须具有包名称main并声明不带参数且不返回值的函数main。

func main() { … }

程序执行的第一步是初始化主要包,然后调用main函数。当该函数调用返回时,程序退出。它不等待其他(非主)goroutine完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接