实战-windows上基于vscode的golang环境搭建-2022.6.29-测试成功-kk-荐
实战:windows上基于vscode的golang环境搭建(测试成功-kk)-2022.6.29【荐】
实验环境
win10
go:v1.16.2 (大于1.11版本都可以)
Vscode:v.1.55.1(其他版本也可以)
实验软件
链接:https://pan.baidu.com/s/1dwuL9mJYqfSSgM0-490Y-w?pwd=3gmb 提取码:3gmb
go1.16.2.windows-amd64.msi
1、安装Go软件
1.下载安装包
https://golang.org/dl/ (Go 语言的官网为:golang.org , 因为各种原因,可能无法访问。)
https://golang.google.cn/dl/ (SDK 下载地址:Golang 中国 ,推荐使用这个,下载速度还是挺快的,大小为119M)
winows下的选择.msi和.zip都是可以的。
2.安装
注意:本次实际安装的是go1.16.2,这里使用1.12做的笔记,1.12以上的版本安装都差不多!
3.设置环境变量PATH
- 安装后,我们可以看下GOROOT目录
- 验证
安装完成后,在cmd里输入如下命令,可以正常显示,就代表go安装成功了:
go version
go env
#直接在命令行里输出go,然后回车,如果可以看到帮助信息,说明我们的go就安装成功了!
- 另外注意下需要配置环境变量:
以下节点需要注意的是:
默认安装好go sdk软件后:
1.GOROOT变量已经被添加到系统环境变量下了,$GOTOOR/bin目录也别添加到系统环境变量下了;
2.新版本我们只需要再配置一下GOPATH、GOPROXY这2个环境变量就好了; (老版本还需要配置下GOPATH变量)
3.新版本(go1.11以后),这边要建议开启GO111MODULE功能,老版本不用!
4.总结:安装好go sdk后:
老版本需要配置:GOPATH、GOPROXY这2个环境变量;
新版本需要配置:开启GOMODULE、GOPROXY这2个环境变量
- 还需要注意的是:
set GO111MODULE=on #使用Go的模块代理; 1.11版本。 on/off/auto 开启module
set GOPROXY=https://goproxy.cn,direct #下载第三方包 配置代理(七牛云)
- 这里有2种配置环境变量的方法:
a. 配置环境变量 (这个优先级高,配置了环境变量后,就不能再使用下面命令再配置了) b. go env -w (推荐)
🍀 方法1:图形化-环境变量配置(持久化方法)(优先级更高)
打开windows系统环境变量,直接在系统变量里添加2个变量:
重新打开cmd,进行确认:
🍀 方法2:go env -w命令配置方法(持久化方法)
在cmd中直接使用go env -w命令更改:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
4.如何卸载
注意:winodws卸载go程序后,其环境会自动被删除的!
1、控制面板,点击程序右键卸载:
2、下载文件删掉:(原来go安装包安装路径)
3、删除配置的环境变量。
2、安装并配置vscode
1.安装vsocde
VS Code 官⽹:https://code.visualstudio.com
VS Code 的安装很简单,直接去官⽹下载安装包,然后双击安装即可。
上图中,直接点击 download,⼀键下载安装即可。
2.安装Go插件
Go插件的功能:Vscode的Go插件会自动化格式你的go代码的,这个功能很不错的(优秀)
🍀1、安装Go插件
在插件搜索里选在Go,找那个星最多的那个,点击安装,重启VScode即可:
🍀 2、安装Go插件所依赖的包
在安装go插件后,如果在编辑go源码时编辑器报错的话,有如下2种解决办法:
注意:安装这些包是去github拉取的,可能要先开下代理!
- a.自动:编辑器弹出什么报错就安装什么插件。
创建go文件并打开,根据工具提醒安装第三方工具,进行安装/升级。
- b.手动安装:ctrl+shift+p -> go install/update tools(安装所有相关包)
会有安装提示:
🍀 注意:也可以考虑在.vscode目录里配置下如下参数(其实,配不配置,貌似影响不大!🤣)
{
"go.inferGopath": true,
"go.autocompleteUnimportedPackages": true,
"go.gocodePackageLookupMode": "go",
"go.gotoSymbol.includeImports": true,
"go.useCodeSnippetsOnFunctionSuggest": true,
"go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
"go.docsTool": "gogetdoc"
}
📍 注意:vscode里go插件的一些包安装报错-2022.5.1(已解决)
- 当前环境
go version go1.11.4 windows/amd64
win10
vscode 1.6.2
分析看像是vscode插件 gopls不支持1.11的包了,需要在1.13以上的!
- 因此这里重新安装新版本软件包:
这里安装好1.18之后,但是又报这个错了:
果然生成go.md文件后,这里就可以正常下载包了:
3.如何运行Go代码
注意:winodws中终端有2种选择方式,一个是cmd,一个是powershell,两者的运行方式有些区别,自己用的过程就知道了。
termianl: windows => cmd(对powershell不熟悉的用cmd)
- 本次测试代码如下:
helloworld.go
package main
func main() {
println("hello, world")
}
- 如何切换方法如下:
🍀 方式1:选中文件在集成终端中打开
🍀 方式2:直接按ctrl `即可直接打开终端。(方便)
4.解决VScode编辑器可能的报错问题
🍀 范例:创建一个module目录,然后生成一个xxx.mod文件
Go代码可能会在Vscode中报错,但是不影响代码运行,只是编辑器有问题。 这个会在讲包的时候在讲。 这个一般建议配置这个步骤,要不自己的VScode编辑器会出现报错的,虽然不是语法问题,但会影响自己编程注意力的。
报错现象:有时候,在写vscode里写完代码保存时会报错:
如何修复:创建一个module目录,然后生成一个xxx.mod文件即可。例如go mod init module
然后后续打开目录时,直接打开含有module这个目录的父目录就好。
老师说,有时候右下角可能会出现报错,但再测试时没有报错,可能问题被修复了:
创建完后,我这边也没有报错了:
🍀 TS:go代码报错-2022.6.29(已解决)
1、报错现象
2、报错环境
- 当前go环境如下:
- 但是,为什么就报错了呢?
- 进一步查看原因:
- 依然报错:
- 依然报错:
记得之前都是没问题的啊……无语
- 最后竟然发现是go文件没加后缀.go导致的……也是无语啊
加上后缀.go也就ok了。
也是无语……
3、结论
一般在工程 目录那里创建一个module目录
,然后使用go mod init module
生成mod文件即可。
FAQ
📍 go sdk新版本和旧版本之间的区别
- GOROOT目录下文件夹的功能
- 另外注意下需要配置环境变量:
GOROOT:go 的安装目录,设置这个环境变量自定义 go 路径 GOPATH:go 的工作目录(项目目录),编译或运行时从这个环境变量中去查找包、依赖
以下节点需要注意的是:
默认安装好go sdk软件后:
1.GOROOT变量已经被添加到系统环境变量下了,$GOTOOR/bin目录也别添加到系统环境变量下了;
2.新版本我们只需要再配置一下GOPATH、GOPROXY这2个环境变量就好了; (老版本还需要配置下GOPATH变量)
3.新版本(go1.11以后),这边要建议开启GO111MODULE功能,老版本不用!
4.总结:安装好go sdk后:
老版本需要配置:GOPATH、GOPROXY这2个 环境变量;
新版本需要配置:开启GOMODULE、GOPROXY这2个环境变量
go1.18默认启用了go module了;
🍀 需要注意:关于GOPATH使用测试
GOPATH:go 的工作目录(项目目录),编译或运行时从这个环境变量中去查找包、依赖
正常情况下,以后go所有的代码都要写到$GOPATH目录下才行的;
但是,如果想把某个目录作为环境变量时,该怎么办呢?//注意:老师这个是apple系统的设置,这里
vscode插件这里可以设置下项目目录的GOPATH路径:
注意:以上设置,只是vscode目录里的代码会从当前目录去查找依赖包,但是vscode命令行里还需要再export下当前目录才行:
但是,我当前vscode并没有这个选项:
🍀 go项目基本结构
pkg:编译过后的一些包文件 (后续会自动生成)
bin:编译过后最终的二进制文件 (后续会自动生成)
一般要创建的就是src目录了,以后的源代码都要放在这个下面;
📍 vscode VS goland比较
🍀 常用开发工具:vim、emacs、sublime text、atom、vscode(推荐1)、GoLand(推荐2)
当然如果大型一点的golang项目,推荐使用golang,但是日常编写测试,用哪vscode完全就够了;
1.vscode
优点
📍 vscode里也是支持跳转的!
📍 Vscode go插件环境在保存的时候会进行编译,因此可自动识别一些语法错误的!;也会自动格式化代码的;
🍀 例如:自动格式化代码
🍀 例如,以下代码,如果函数里使用了fmt包,但是没用import导入这个包的话,那么在保存代码后,go插件会自动补上包名的:
保存前:
保存后: