1、包的一些基本的概念git
一、在同一个目录下的全部go文件中,只能有一个main函数。若是存在多个main函数,则在编译的时候会报错github
那么,在同一个目录下的两个go文件到底是什么关系? 为何会彼此影响呢?函数
这里要提到go package的两个约束:spa
一、同一个目录下的go文件,若是package是main,那么这个目录下的go文件只能有一个main函数。3d
二、同一个目录下的go文件,只能是一个package。 (注意: 这里说的是同一个目录下的go文件,但不是同一个目录下的其余目录中的go文件)blog
那么问题来了,为何须要package呢?文档
在一个项目中,会有不少个go文件,package的做用就是进行一个代码分类组织get
举个例子:string
1.在hello.go里面定义个main函数,引用了main的package。it
2.在另外一个echo.go里面,由于只能有一个main函数,因此这里只定义了变量 var X string = "chenchao"
3.那么在hello.go里面就能够直接用另外一个文件中的X变量了
package的做用:
一、同一个package下能够共享变量
二、同一个package下能够共享函数
2、一个在线的package的帮助文档
http://godoc.org/+包的名称
3、引入第三方的package
例如: 引入github下的一个库
一、go get github.com/icexin/golib
这一步操做就是讲git上的库下载到本地,你会发现这条命令会将package默认下载到 $GOPATH下的/src/下,并与package的目录结构一致。
二、在/src/的其余目录下新建立一个目录如:/thirdlib/,做为另外一个package,而后在目录下新建一个main.go文件,并导入刚才下载的第三方package
这里引入的第三方package 是一个全路径,这个路径就是从 $GOPATH/src/开始算起。因此,要写的路径就是从/src/开始。