跳到主要内容

实战-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插件会自动补上包名的:

保存前:

保存后:

缺点
📍 无语,一直报红色和黄色提示。。-2021.04.24

2.goland