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

时间:2015-04-16 14:28:33

标签: go

没有C背景,只有"初学者" Go的经验我试图弄清楚main.go是否真的需要或只是一个惯例。

我希望创建一个简单的网络API,但有人可以为我澄清这个吗?

2 个答案:

答案 0 :(得分:16)

main.go不需要文件。

但是,可执行文件需要mainfunc 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   完整。