【问题标题】:Is main.go required in a Go project?Go 项目中是否需要 main.go?
【发布时间】:2015-04-16 14:28:32
【问题描述】:

没有 C 语言背景,也没有 Go 语言的“初学者”经验,我试图弄清楚 main.go 是实际需要还是只是一种约定。

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

【问题讨论】:

    标签: go


    【解决方案1】:

    main.go 不需要作为文件。

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

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

    例如

    myawesomeapp.go

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

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

    【讨论】:

      【解决方案2】:

      对于 Web 服务器(可执行文件),您需要有一个 package main 和一个 func main(),但它不需要称为 main.go - 文件名可以是任何您想要的名称。来自language spec

      程序执行

      通过链接单个未导入的包来创建完整的程序 用它导入的所有包调用主包, 及物的。主包必须有包名 main 并声明 一个不带参数且不返回值的函数 main。

      func main() { … }
      

      程序执行从初始化主包开始,然后 调用main函数。当该函数调用返回时, 程序退出。它不会等待其他(非主)goroutines 完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-19
        • 1970-01-01
        • 2019-11-05
        相关资源
        最近更新 更多