# learn-go **Repository Path**: hezheGo/learn-go ## Basic Information - **Project Name**: learn-go - **Description**: Go语言学习 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-10 - **Last Updated**: 2021-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # learn-go #### 介绍 Go语言学习 # 命令 - go version - go env - 国内镜像网址:goproxy.cn - go env -w GOPROXY=https://goproxy.cn,direct - go env -w GO111MODULE=on (on只能小写) - go get -v golang.org/x/tools/cmd/goimports - go run hello.go - go mod init 名称 # Go语言的依赖管理 - 依赖管理的三个阶段GOPATH,GOVENDOR,go mod ## GOPATH - 默认在~/go(unix,linux),%USERPROFILE%\go(windows) - 依赖的代码在GOPATH/src目录下,多个项目不能区分依赖包的版本,使用vendor目录 mkdir /tmp/gopathtest go env go env -w xx export GOPATH=/tmp/gopathtest mkdir src export GO111MODULE=off // 临时修改,全局不做修改 go get -u go.uber.org/zap mkdir vendor ## GOVENDOR - 每个项目有自己的vendor目录,存放第三方库 - 依赖包查找顺序: - 1、项目目录下的vendor目录 - 2、GOROOT - 3、GOPATH - 大量第三方依赖管理工具:glide,dep,go dep,... ## go mod - ide建项目时,选择Go Modules,设置proxy - 由go命令统一的管理,用户不必关心目录结构 - 初始化:go mod init - 增加依赖 - 1、go get + 依赖的包 - 2、import + 依赖的包,执行编译,会自动下载 - 更新依赖:go get [@v...], go mod tidy - go get -u go.uber.org/zap@1.11 - go mod tidy 清理go.sum - 引用本项目的包 - import的路径 = go.mod下的module name + 包相对于go.mod的相对目录 - 将旧项目迁移到go mod - 1、go mod init + 名称 - 2、go build ./... 编译当前目录及所有子目录,不会生成结果 - 3、go install ./... 生成的结果放到GOPATH/bin目录下