go中的package和main关系

• 在Go语言中,和java的main是有所区别的,具体区别如下:
在java中,任何一个java文件都可以有唯一一个main方法当做启动函数
在go中,则是任何一个package中,都可以有唯一一个带有main方法的go文件
也就是说,一个package下,只能有一个main方法,不管是在那个文件中,但是只能有一个,这个package是按照文件夹区分的
• go run其实是执行一个exe文件(window),go build 入口是一个main包,有main包才能生产exe文件,一个mian包里只能有一个唯一的main方法,
• 同一个包里的方法可以互相调用,除了main包之外,其他包不能调用main包里的方法,但main包可以调用其他包的方法
调用包的时候,包是按照文件夹区分的,调用包的时候如果包里还有main包,就会默认调用main包里的内容,当main包就是一个exe程序,不是包这样调用就会提示:import "CloudStorage/sign" is a program, not an importable package

原文地址:https://www.cnblogs.com/frankltf/p/13819170.html