包"main"和func"main"

mne*_*nic 19 go

介绍/样本前进我已经看到并开始实验

package main
Run Code Online (Sandbox Code Playgroud)

并有

func main()
Run Code Online (Sandbox Code Playgroud)

包线中的"main"和func行中的"main"之间是否有任何关系?我猜不是.C/C++使用相同的"主"入口点.只是想确定一下.我没有看到任何文档说使用"主要"只是巧合.

Cer*_*món 20

应用程序的入口点是包中 的main函数,如规范中所述:main

一个完整的程序是通过将一个名为main package的单个无转换与它所导入的所有一起链接来创建的.主包必须具有包名称main并声明一个main不带参数的函数并且不返回任何值.

func main() { … }
Run Code Online (Sandbox Code Playgroud)

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

语言规范main对此上下文之外的名称没有特殊含义.该名称main不是保留名称.

main在非主包中声明一个函数是可以的.在这种情况下,它只是一个名为的函数main.

  • 但是,除main以外的某些软件包中的文件中的func main()是什么? (2认同)