文章目录
Vscode搭建go语言开发环境
解释器
下载官网:Downloads - The Go Programming Language (google.cn)
傻瓜式安装,记住安装路径即可
终端中测试是否安装成功:
**bin:**存放编译后的二进制文件
**pkg:存放编译后的包文件。 包文件扩展名通常为xxx.a,即 .a **结尾。
src:存放Go语言包的源代码
vscode中需要装的插件
配置用户变量及环境变量(重要)
环境变量
将go解释器安装位置的bin目录放path里面(在系统变量中的Path中插入一条,Golang安装目录/bin)
用户变量
添加用户变量
GOPATH变量设置用户工作目录。如果写代码时要用到第三方库,然后使用go get xxx时,xxx就下载到这个目录。
把系统自带的\用户变量\中的GOPATH删除。因为原有路径C:\Users\xxx\go不是我们存放go代码的地方。
变量 GOPATH 值 D:\interpreter\go\wrokspace
(这里填写你的Golang工作目录,用于保存相应下载的包
添加后在命令行下使用
go get -u xxx
就可以安装第三方库了
go get -u gorm.io\gorm
使用上面的命令之后就可以在D:\interpreter\go\bin\pkg\mod目录下发现有个gorm.io的文件夹,下面有gorm文件夹
GOROOT变量设置Go编译器的安装位置
变量 GOROOT 值 D:\interpreter\go
(这里填写你的Golang安装目录)
配置go的环境变量
在命令行下使用
go env
命令可以看到所有关于go的环境变量。(查看Golang的环境)
由于go是google的产品,许多插件都是在国外,然而国内访问不了,所以要设置代理等配置
所以我们设置以下参数
go env -w GOPROXY=https://goproxy.io,direct
go env -w GOPRIVATE=*.corp.example.com
go env -w GO111MODULE=on
那些vscode中可能遇到的问题
例如报错: (go: cannot find GOROOT directory: c:\go)
vscode终端快捷打开方式为:
ctrl+shift+tab上那个键
如果以前安装过golang,并且在vscode中用过
可能在一次安装vscode的时候会按照原来的路径找GOROOT
如图第一次查看go语言环境是没有成功的,但使用命令
set GOROOT=D:\interpreter\go
手动设置GOROOT就成功了
同理可设置GOPATH:(如下图)
GO111MODULE
- GO111MODULE介绍GO111MODULE有三个值:off, on和auto(默认值):- GO111MODULE=off go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本的通过vendor目录或者GOPATH模式来查找。- GO111MODULE=on go命令行会使用modules,不会去GOPATH目录下查找。- GO111MODULE=auto(默认值) go命令行将会根据当前目录来决定是否启用module功能。下面两种情形将启用module功能: a. 当前目录在GOPATH/src之外且该目录包含go.mod文件 b. 当前文件在包含go.mod文件的目录下面。
- Windows系统中设置GO111MODULE 直接在环境变量中添加一个变量,变量名为GO111MODULE,变量值为on、off、auto中的一个。
- 使用 go env -w 设置GO111MODULE当按照的go版本大于等于1.13时,可以直接使用go env -w 命令非常方便的设置变量。go env -w 命令在用户级别修改变量,被修改的信息默认保存在$HOME/.config/go/env文件中。ps:1.16.5 版本,用 go env -w 也有不生效的情况。
#查看GO111MODULE的当前值go env#设置GO111MODULE的值#开启模块支持,无论什么情况,go命令都会使用modulego env -w GO111MODULE=on#关闭模块支持,无论什么情况,go命令都不会使用modulego env -w GO111MODULE=off#默认值,go命令根据当前目录决定是否启用module功能#即当前目录在GOPATH/src之外且该目录包含go.mod文件时开启module功能;否则继续使用GOPATHgo env -w GO111MODULE=auto
GOPROXY
这里最重要的一项是要检查GOPROXY的设置,GO语言是Google家的产品,所以不设置代理是代理后面安装相关插件时是寸步难行(即使开梯子也没有,必须设置代理)!
网上提供了一些代理:
go env -w GOPROXY=“https://goproxy.cn,direct”
go env -w GOPROXY=“https://goproxy.io”
go env -w GOPROXY=“https://mirrors.tencent.com/go/”
direct参数的作用是:当https://goproxy.cn代理可以正常访问时,就优先走代理下载依赖包。如果代理走不通或没有这个包,就不使用代理,直接去找包的github源地址下载
GOPATH
Go语言是一个编译型语言,有很多依赖包需要开发在打包过程编译进去。所以需要配置一个类似workspace的工作区,也就是我定义好目录,要在这个目录下写源代码。
GOPATH境变量:用来表明你写的go项目的存放路径(工作目录)。
在你想要项目的地方新建三个目录src、bin、pkg效果如下
src: 存放源代码
bin: 存放编译后的二进制文件
pkg:存放编译后的包文件
最后在src里面新建一个文件夹,用vscode打开,直接打开终端执行
go mod init+项目名
就可以进行代码编写啦(注意是在GO111MODULE=on的情况下)
初始化后是这样的:
编译执行
先编译再执行
编译
执行
直接执行
gin框架搭建
- 养成一个好习惯,在写项目之前先初始化项目
go mod init 项目名go mod tidy
- go mod tidy命令的作用:- 添加需要用到但go.mod中查不到的模块,- 删除未使用的模块- 注意执行时要和go mod&go sum 在同一路径
- 安装Gin框架
go get -u github.com/gin-gonic/gin
在你的文件夹中出现了.sum文件,说明安装成功,接下来我们写一个简单程序,验证是否成功package mainimport"github.com/gin-gonic/gin"funcmain(){// 创建一个默认的路由引擎 r := gin.Default()// 配置路由 r.GET("/",func(c *gin.Context){ c.JSON(200, gin.H{// c.JSON:返回 JSON 格式的数据"message":"Hello world!",})}) r.Run()// 启动 HTTP 服务}# go run main.go后打开127.0.0.1:8080成功显示Hello world
go mod vendor
的功能是将新增的依赖包自动写入当前项目的 vendor 目录。
版权归原作者 2023年双手插兜,不知道什么叫做对手 所有, 如有侵权,请联系我们删除。