当前位置: 首页 > news >正文

GO开发环境配置

要开始go语言的学习,首先要配置好go的开发环境。windows+vscode2019插件


第一步:下载sdk

可以去golang中国下载

Go下载 - Go语言中文网 - 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 [path@version]

可以发现出现mod

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

然后开始编译输出

很好,hello world 成功输出,go语言学习成功,不对,环境变量配置成功。

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

相关文章:

  • Docker-compose安装mysql
  • 字符函数和字符串函数(C语言)
  • zynq pl访问ps ddr
  • JavaEE初阶:HTML
  • IDEA中JDBC连接MYSQL数据库步骤超详细总结
  • docker 开启 nginx 容器
  • 109 使用Ajax传递请求本地数据库
  • 《算法系列》之设计
  • xerces-c++内存管理策略为何耗费大量内存
  • STM32学习笔记:驱动SPI外设读写FLASH
  • 操作系统安全 基本概念
  • 猿创征文——C++|string类2
  • 【51单片机】认识单片机
  • Windows中执行C语言编译的程序乱码的解决方法
  • 商城项目10_JSR303常用注解、在项目中如何使用、统一处理异常、分组校验功能、自定义校验注解
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • DOM的那些事
  • js写一个简单的选项卡
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Node项目之评分系统(二)- 数据库设计
  • Redis中的lru算法实现
  • springMvc学习笔记(2)
  • 从零搭建Koa2 Server
  • - 概述 - 《设计模式(极简c++版)》
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 前端学习笔记之观察者模式
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 小程序测试方案初探
  • 学习ES6 变量的解构赋值
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (09)Hive——CTE 公共表达式
  • (poj1.2.1)1970(筛选法模拟)
  • (八)Spring源码解析:Spring MVC
  • (转)编辑寄语:因为爱心,所以美丽
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net 中viewstate的原理和使用
  • .Net8 Blazor 尝鲜
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • [ C++ ] STL---仿函数与priority_queue
  • [ SNOI 2013 ] Quare
  • [4.9福建四校联考]
  • [android] 手机卫士黑名单功能(ListView优化)
  • [Angular 基础] - 表单:响应式表单
  • [AutoSar NVM] 存储架构
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [c#基础]DataTable的Select方法
  • [CISCN2019 华东北赛区]Web2