golang 入门
曹飞龙 · · 1231 次点击 · · 开始浏览本文章使用的是 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 的工具还算好用,在这里推荐一下
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
本文章使用的是 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 的工具还算好用,在这里推荐一下