包的定义
包文件所在的位置
包文件就是一个Go源码文件
如何指定包名
package name //name是目录名称 不能是main
在同一个目录中所有的go文件的包名必须要相同 否则会异常
包文件所在的目录如何命名
如果包是对外发布的 最好用域名来命名顶层的包目录 以保证全球唯一
import() 里面导入的是包目录(都是路径) 而不是包
所有import导入的包路径 必须要在后面引用 否则会报错(提高编译效率)
如果包路径有冲突或者太长 可以为包路径取一个别名
只想导入包目录 后面不想引用包
import _ "fmt" 在import后面添加一个_
包目录所在的位置
一定要放在GOPATH或者GOROOT的src的目录下
包的导入
包名可以是包文件所在的目录名称 也可以是自定义名称不一定要是目录名称
封装包提供给别人使用
把自己创建的包目录如(github.com/k8s.io/fmt) 拷贝到(GOPATH或者GOROOT)/src
src目录是必须要存在的 这个目录一般在GOPATH或者GOROOT下
包的别名
1.包名太长
2.包名冲突
import 别名 包路径
匿名包
import _ 包路径
需要导入包但是不需要调用包中的任何引用 可能只是用来自动初始化某些数据
go安装线上第三方模块
如果是1.11版本 可以设置goproxy,有开源的谷歌代理地址:goproxy.io
[root@k8s-master src]# export GO111MODULE=on
[root@k8s-master src]# export GOPROXY=https://goproxy.io
[root@k8s-master src]# go get k8s.io/apimachinery/pkg/apis/meta/v1
go get获取代码到本地的时候编译器会通览一遍代码,得出需要哪些依赖包.如果本地没有这些依赖包会从远程拉取这些依赖包到本地然后完成编译.
go 工具会自动根据不同的域名调用不同的代码管理工具
go [command] ./...
这里./告诉从当前文件夹开始,...告诉递归下去
go get -u -v k8s.io/code-generator/... -v 可以显示操作的每个执行细节 方便调试查看