一、go语言中包的使用
1、包(package)
go语言的入口main函数所在的包,main包想引用别的代码,需要import。
如下图所示
这里导入了两个工程内自定义的包,util和utiltime,并且在主函数main中调用了自定义包中的函数
下面看一下两个自定义包
在工程study目录下创建了util目录,在util目录下的go文件会默认生成一个package
在util目录下又创建了utiltime目录(嵌套结构)
再返回看main函数,所引包中的函数首字母为大写的,才可以在其他包中或者函数中引用,若为小写仅可在本包中引用
总结一:关于包的使用
a、一个目录下的文件统一归属一个包,package的声明要一致
b、package声明可以和目录不一致,但同一目录下的声明必须一致
c、包可以使用嵌套结构
d、同包下的函数不需要导入包
e、main包为main函数所在的包
f、导入包的时候要从src目录写起,或是使用相对目录
g、导入包可以配置别名
2、init()包初始化
a、init()函数会优先于main()函数执行,初始化数据
b、定义时不能有任何返回值和参数,这一点和main函数是一样的init函数可以存在于任意包中,可以定义多个
c、init函数可以存在于任意包中,可以定义多个
d、同一个go文件中,从上到下调用,同一个package中,按文件名字符串从小到大排序,不同的package中,若不互相依赖,则按照main包中import顺序,若存在依赖关系,则最后被依赖的最先被初始化。
e、存在依赖的包之间,不能循环导入
f、一个包可以被多次import,但只能初始化一次
g、值初始化某个包中的init()函数,单不执行其他内容,可以在导入包时加下划线,example import _ “utils”
3、管理外部包
a、clone下来外部包,copy到gopath的src目录下(纯内网)
b、go get ${path} go get github.com/go-sql-driver/mysql
二、工程目录结构
GOPATH是go的开发目录,目录结构如下
- 本文作者: Devops旭
- 本文链接: http://yoursite.com/2020/03/17/go学习笔记day2/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!