Go 的package

 

一、包的一些基本的概念

1、在同一个目录下的所有go文件中,只能有一个main函数。如果存在多个main函数,则在编译的时候会报错

那么,在同一个目录下的两个go文件究竟是什么关系? 为什么会彼此影响呢?

这里要提到go package的两个约束:

1、同一个目录下的go文件,如果package是main,那么这个目录下的go文件只能有一个main函数。

2、同一个目录下的go文件,只能是一个package。 (注意: 这里说的是同一个目录下的go文件,但不是同一个目录下的其他目录中的go文件)

 

那么问题来了,为什么需要package呢?

在一个项目中,会有很多个go文件,package的作用就是进行一个代码分类组织

举个例子:

  1.在hello.go里面定义个main函数,引用了main的package。

  2.在另一个echo.go里面,因为只能有一个main函数,所以这里只定义了变量 var X string  = "chenchao"

  3.那么在hello.go里面就可以直接用另一个文件中的X变量了

package的作用:

  1、同一个package下可以共享变量

  2、同一个package下可以共享函数

 

 二、一个在线的package的帮助文档

 

 http://godoc.org/+包的名称

 

 三、引入第三方的package

例如: 引入github下的一个库

1、go get github.com/icexin/golib

  这一步操作就是讲git上的库下载到本地,你会发现这条命令会将package默认下载到 $GOPATH下的/src/下,并与package的目录结构一致。

2、在/src/的其他目录下新创建一个目录如:/thirdlib/,作为另一个package,然后在目录下新建一个main.go文件,并导入刚才下载的第三方package

  

这里引入的第三方package 是一个全路径,这个路径就是从 $GOPATH/src/开始算起。所以,要写的路径就是从/src/开始。

 

posted on 2017-06-15 18:00  让我们忘了那片海  阅读(3042)  评论(0编辑  收藏  举报

导航