Contents
7.1. 包管理¶
Go语言的源码复用建立在包(package)基础之上。 Go语言的入口main()函数所在的包(package)叫main,main包想要引用别的代码,必须同样以包的方式进行引用。
Go语言的包与文件夹一一对应,所有与包相关的操作,必须依赖于工作目录(GOPATH)。
7.1.1. 1.工作目录(GOPATH)¶
1.1 使用命令行查看GOPATH信息¶
$ go env
1.2 使用GOPATH的工程结构¶
在GOPATH指定的工作目录下,代码总是会保存在\(GOPATH/src目录下。 在工程经过go build、go install或go get等指令后,会将产生的二进制可执行文件放在\)GOPATH/bin目录下, 生成的中间缓存文件会被保存在$GOPATH/pkg下。
如果需要将整个源码添加到版本管理工具(Version Control System,VCS)中时,只需要添加$GOPATH/src目录的源码即可。 bin和pkg目录的内容都可以由src目录生成。
建议在开发时只填写项目GOPATH,每一个项目尽量只设置一个GOPATH,不使用多个GOPATH和全局的GOPATH。
Go语言中的GOPATH也是一种类似全局包含的设计,因此鉴于Visual Studio在设计上的失误,建议开发者不要设置全局的GOPATH,而是随项目设置GOPATH。
7.1.2. 2.包的导入¶
在Go语言中,函数或者对象及其方法的调用需要先把所依赖的库导入。
虽然官方支持多种导入方式,但是为了便于理解,
建议使用默认的导入方式,即全路径的导入方式,主要原因如下:
(1)便于知道函数或者类型来自哪个库。
(2)防止冲突,函数或者类型命名冲突的情况非常容易发生。
默认导入方式:全路径导入,fmt在$GOROOT/src目录下。
package main
import (
"errors"
"fmt"
"log"
)
func main() {
fmt.Println("Hello World")
fmt.Print(errors.New(""))
log.Println()
}
7.1.3. 3.下载包¶
使用go命令来下载包:
go get -u -v github.com/PuerkitoBio/goquery
【说明】
u:表示更新,比如远程代码更新,本地库还是旧版的。
v:显示下载库的文件详细信息。
因为Go语言是谷歌公司出品的,有些库托管在谷歌服务器上,所以有时下载库会连接不上,这时推荐设置代理的方式,具体的设置可参照官方网站(https://goproxy.cn/),以便提升下载速度。
3.1 Gitee Go Proxy仓使用帮助¶
1.代理上游¶
2.使用方法¶
#Go 1.13 及以上
go env -w GO111MODULE=on
go env -w GOPROXY=http://mirrors.gitee.com/repository/go-public/
go env -w GOSUMDB=off
#or
export GOPROXY=http://mirrors.gitee.com/repository/go-public/
测试
#test
go get github.com/valyala/fasthttp