本文章使用的是 go1.13 ,使用的系统为 mac os
最近在学习go,吧自己在学习go中遇到的一些问题记录一下
安装
推荐使用 gvm 安装
gvm是一个管理go 版本的工具
安装步骤
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvm install go1.13 -B
gvm use go1.13 --default
在使用gvm 的过程中遇到了一些问题,在gvm 的read.md中建议先安装 go1.4 然后在安装别的,我安装了好几次都失败了,最后卸载了gvm 然后使用直接使用上面的 命令就成功了(mac系统)
环境变量介绍
GPROOT
指定go程序的安装位置(可以不管)GOPATH
定义工作空间
go规定你的工作空间必须在GOPATH下,分为三个目录
bin
存放build 之后的二进制文件 src
存放源码pkg
存放模块编译之后的文件
PATH
设置PATH是为了能够方便的运行go编译之后的文件,所以讲 GO_PATH/bin 添加到 PATH
中
Hello World
创建 hello.go
并写入如下内容
package main
import "fmt"
func main(){
fmt.Println("Hello World")
}
一个go 的hello world 的程序就完成了,执行 go run hello.go
包管理
当我使用go开发项目的时候发现go 的包管理有很多种方式,不过在go1.11 之后还是推荐大家使用 go modules
使用条件
项目的目录不在 GOPATH
目录下
使用方法
go mod init <模块名称> ## 创建 go.mod 模块名称使用来调用当前目录的模块的
go get <模块名称> ##安装依赖包
go 命令会根据go.mod 中定义的版本下载对应的依赖,如果你的代码中引入了包没有在go.mod中 go命令会现在最新的包并且吧依赖关系放到 go.mod 中
go mod超时的问题 设置 export GOPROXY="https://goproxy.io" 使用这个代理将不会有超时的问题
经验
在开发web项目的过程中需要频繁的重启服务,之前写node 的时候有一个 nodemon
的工具,在写go的时候也找了找,找到一个gowatch 的工具还算好用,在这里推荐一下
有疑问加站长微信联系(非本文作者)