当前位置:网站首页>GO开发环境配置
GO开发环境配置
2022-08-02 00:19:00 【m0_67401499】
要开始go语言的学习,首先要配置好go的开发环境。windows+vscode2019插件
第一步:下载sdk
可以去golang中国下载
根据自己的系统选择对应的下载 我的是选择最后一个

下载好后 安装在一个较简单的目录下(好像不能有中文) 按照提示一路点击即可
安装完成后打开命令行cmd 进入到安装目录下的bin目录 输入以下指令
go version
当出现版本号说明安装成功:

第二步:配置环境变量
打开我的电脑找到属性里面的环境变量配置
或者在设置里直接搜索环境变量

GOROOT为下载的go包目录位置 里面存放着go源码及API
新建GOROOT

GOPATH为工作目录 存放着自己写的go代码
当不使用Go mod管理时依赖包(如Google/grpc)也需加入到GOPATH管理(;附加也可)
不使用go mod 管理的话会默认去GOPATH的src下找
新建配置GOPATH(用户变量和系统变量都有)

PATH为go的可执行文件目录 即GOROOT的bin目录 例如go env go build fmt
新建配置PATH(系统变量)

配置好后打开cmd输入查看环境变量
go env
当GOPATH变成配置的环境变量

测试是否配置成功(配置好要重新打开cmd)
在其他目录(根目录)下输入go version和go env 可以看到对应的输出代表配置成功
第三步:vscode配置
在vscode中下载go的扩展

VsCode Go插件依赖的工具
接下来 安装Go插件所依赖的go tools
按ctrl+shift+p 调出命令面板,输入go install tools 选Go: Install/Update Tools
如下:
点击后我直接全选全部安装

如果安装失败尝试替换代理
go env -w GOPROXY=https://goproxy.cn
安装完成后 已经有代码提示及自动导包
环境测试
一:不使用go mod管理
先创建go文件存放路径 我的路径如下
D:goprojectsrcgocodeproject01main
使用vscode打开文件夹
在main下新建一个文件hello.go (go语言有包的概念 好像是每个文件都要属于一个包)
打出经典代码
package main
import "fmt"
func main() {
fmt.Println("hello,world!")
}
这里如果 GOROOT(源码) 和GOPATH(工作目录) PATH三个环境变量没有问题可以正常编译通过
二:使用go mod
go mod是go高版本之后出现的包管理工具,要么使用默认包管理,要么使用go mod,不能同时使用
当使用了go mod时下载的依赖在GOROOT的pkg的mod下管理
使用 go env 命令 查看
GO111MODULE=off 是没有开启
1:开启go modules功能,命令行输入
go env -w GO111MODULE=on
初始化mod管理模块(进入到项目目录下 xxx为项目名称)
go mod init xxx //xxx代表当前文件夹名
go mod相关
//初始化模块:
Go mod init <项目模块名称>
//依赖关系处理,根据go.mod文件
Go mod tidy
//将依赖包复制到项目的vendor目录
Go mod vendor
//显示依赖关系
Go list -m all
//显示详细依赖关系
Go list -m -json all
//下载依赖
Go mod download [[email protected]]
可以发现出现mod

使用go env查看环境查看是否设置成功

然后开始编译输出

很好,hello world 成功输出,go语言学习成功,不对,环境变量配置成功。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- MySQL常用语句整理
- 期货开户手续费加一分是主流
- MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
- Trie详解
- ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)
- C语言函数详解(1)【库函数与自定义函数】
- mapbox使用教程
- Active Disturbance Rejection Control of Substation Inspection Robot Based on Data Drive
- Redis - message publish and subscribe
- 测试点等同于测试用例吗
猜你喜欢

go笔记——map

datagrip 报错 “The specified database userpassword combination is rejected...”的解决方法

23.卷积神经网络实战-ResNet

go笔记——锁

Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性

鲲鹏编译调试插件实战

Go 1.18 的那些事——工作区、模糊测试、泛型

Looking back at 5 recessionary times in history: How might this time be different?

期货公司开户实力经纪业务的规模

C语言:打印整数二进制的奇数位和偶数位
随机推荐
dayjs时间处理库的基本使用
管理基础知识13
ELK日志分析系统
测试用例:四步测试设计法
These 4 computer notepad software, you have to try
什么是低代码(Low-Code)?低代码适用于哪些场景?
460. LFU cache
Mapped Statements collection does not contain value for的解决方法
C语言实验十 函数(二)
MInIO入门-03 秒传+大文件分片上传
Debian侵犯Rust商标,妥协改名还是会得到豁免?
测试点等同于测试用例吗
PHP to read data from TXT file
nodeJs--mime module
渗透测试与攻防对抗——渗透测试基础
input禁止输入
Mean Consistency Tracking of Time-Varying Reference Inputs for Multi-Agent Systems with Communication Delays
Unknown CMake command "add_action_files"
JSP built-in object out object function introduction
C语言实现扫雷游戏