本文环境:windows 64位
一、安装go语言开发包
1.1 下载开发包
安装包下载地址为:https://golang.org/dl/
如果打不开可以使用这个地址:https://golang.google.cn/dl/
选择对应开发平台的包进行下载,如下图(推荐选择这里的版本,更多版本可以自行下翻):
本文下载windows版本;
1.2 安装
双击安装包 go1.15.8.windows-amd64.msi ,按照步骤一路next便可安装完成。
1.3 环境变量配置
默认情况下 .msi 文件会安装在 C:\Program Files\Go 目录下。你可以将 C:\Program Files\Go\bin 目录添加到 Path 环境变量中(本文安装后自动添加)。添加后你需要重启命令窗口才能生效。
打开一个cmd窗口,输入'go',可以查看安装状况;
输入“go version”,如果正确显示版本,则安装成功;
二、安装开发编辑器IDE(VS Code)
对于开发者而言,编辑器永远都不是唯一的,适用于go语言开发的编辑器有很多,包含GoLand、IDEA、VS Code等,当然使用notepad++等也能进行go语言的开发,具体选择哪一款编辑器,只能见仁见智, 适合自己的才是最好的。
本文选择轻量、开放、开源的VS Code更适合我,它使用起来很顺手,并且可以安装各类插件,在一定程度上可以提高开发效率。
使用 Visual Studio Code 和 Go 扩展有许多好处。
- 按照 Go 标准格式化应用程序。
- 添加新行并保存代码后立即添加包引用。
- 删除应用程序不再使用的包引用。
- 通过设置断点并在运行时使用观察程序来调试应用程序。
- 获取代码和包引用的建议完成项。
- 使用悬停信息连接到代码文档。
- 获取签名帮助,如列出函数的参数。
- 即使有多个文件,也可以轻松地在项目代码中导航。
- 登记对测试的支持,如为函数生成测试框架。
所以下面和大家介绍下VS Code的安装。
地址:https://code.visualstudio.com/
如果下载慢,比如本文下载地址显示:https://az764295.vo.msecnd.net/stable/8490d3dde47c57ba65ec40dd192d014fd2113496/VSCodeUserSetup-x64-1.53.0.exe
把其中的 “/az764295.vo.msecnd.net/” 修改为 “/vscode.cdn.azure.cn/”,修改后地址:https://vscode.cdn.azure.cn/stable/8490d3dde47c57ba65ec40dd192d014fd2113496/VSCodeUserSetup-x64-1.53.0.exe
这个就是国内的镜像了,点开后你会发现速度直接起飞。
2.2 安装VS Code:
双击下载下来的exe,按照提示一路next就可以了。
需要注意的是:如果你想选择目录或文件后右键可以选择VS Code打开的话,需要在进行到“选择其他任务”时,把下图红框中的两个可选项勾上。
2.3 VS Code 编写go初体验
至此,VS Code已经安装完成,接下来便可以利用VS Code编写第一个go程序了,使用快捷键:Ctrl + N 新建一个文件,输入以下代码,命名为main.go:
package main // 定义包名
import
"fmt" // 告诉 Go 编译器这个程序需要使用 fmt 包,fmt 包实现了格式化 IO(输入/输出)的函数。
func main () {
// 将字符串输出到控制台
fmt.Println("hello world")
}
唤起VS Code的终端窗口,以此输入以上的命令,可以看到执行结果如下:
到这里,看起来一切都正常了,但是有些不足,最真切的体验就是输入fmt.的时候没有智能提示fmt包的方法,这就意味着开发者必须记住包里面包含的方法及其拼写,这对于习惯了智能提示的开发者而言无疑是难以接受的。
三、安装VS Code扩展包
3.1 安装中文语言包
安装中文(简体)包,关闭VScode,重启即可。
3.2 安装go语言包
安装go语言包。
3.2 安装其它go扩展包
Rich Go language的使用需要用到一些其它的go语言包,在功能介绍的截图里面其实有提到,其中包括gocode、gopkgs、go-outline等。在我们开始写代码的时候,会弹出对这类包的需求:
要解决该问题并不难,点击“install all”安装所需的依赖包即可。
注意:选择其中一个点击“install all”就好,因为install all 安装的包已经包含了另一个提示里面的需要的包,多次点击只会重复安装,浪费时间。
本文在安装过程中全部显示失败:
Tools environment: GOPATH=C:\Users\liyuq\go
Installing 9 tools at C:\Users\liyuq\go\bin in module mode.
gopkgs
go-outline
gotests
gomodifytags
impl
goplay
dlv
golint
gopls
Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs FAILED
Installing github.com/ramya-rao-a/go-outline FAILED
Installing github.com/cweill/gotests/... FAILED
Installing github.com/fatih/gomodifytags FAILED
Installing github.com/josharian/impl FAILED
Installing github.com/haya14busa/goplay/cmd/goplay FAILED
Installing github.com/go-delve/delve/cmd/dlv FAILED
Installing golang.org/x/lint/golint FAILED
Installing golang.org/x/tools/gopls FAILED
9 tools failed to install.
本文解决办法,是定位到国内镜像:
通过命令:go env,可以看到主要的配置;期中有两项:
set GO111MODULE=
set GOPROXY=https://proxy.golang.org,direct
在GO 1.13及以上版本中,使用以下命令修改这两项配置:
>go env -w GO111MODULE=on
//or
>go env -w GO111MODULE=auto
>go env -w GOPROXY=https://goproxy.cn,direct
本文修改后,显示为:
注意:此时需要重启VS Code;
然后重新安装go-tools;调出”Install ALL“安装界面的方法,可以在代码区随意敲入代码,也可以是:
Windows系统按Ctrl+Shift+P
,Mac系统按Command+Shift+P
,在弹出来的框框中输入>go:install
,下面会自动搜索相关命令,我们选择Go:Install/Update Tools
这个命令,如下图:
执行命令后,在弹出来的窗口中,选中所有选项,然后点击确定。
安装成功后的界面:
此时,再次在代码区输入代码,则不会有任何错误信息,且有相应的提示功能:
四、配置VS Code目录
第三节安装完成后,会在用户目录:"GOPATH=C:\Users\liyuq\go"显示相应修改,比如新增加了bin目录,期中内容为:
修改GOPATH
进入环境变量配置界面:
将环境变量“GOPATH”的值修改为:"D:\2020_go\Go_WorkSpace";点击确定;
说明:以下三个是环境变量,但是我们只用添加GOPATH即可,另外两个知道什么意思即可。
GOPATH
:Go工作目录,包含pkg、bin、src三个文件夹(在本文安装配置过程中,这三个目录的出现顺序是pkg、bin,没有src)。GOROOT
:Go的安装路径。GOBIN
:go install编译存放路径,可以为空,默认是gopath/bin目录。
GOPATH下的目录:
bin
:包含编译后生成的可执行文件,可自动生成。pkg
:包含编译后生成的包/库文件,可自动生成。src
:包含项目的源代码文件,go run,go install等命令的当前工作路径;如果没有的话就自己创建,非必须。
重启VS code,此时执行“go env”,可以看到 GOPATH 的值修改成功;
五、运行
在使用终端命令行能正常执行代码的条件下(见2.4节),尝试直接 run :
出现以下界面,点击“运行和调试”,与菜单“运行\启动调试(F5)”功能一致:
菜单“运行\以非调试模式运行(Ctrl + F5)”显示:
六、setting.json配置
本文在开始使用时,在源文件第一行“package main”总是警告(warning):"gopls requires a module at the root of your workspace";
参考https://www.cnblogs.com/o0olele/p/13408963.html,并加上以下内容:
"gopls": {
"experimentalWorkspaceModule": true
}
问题解决。
所以,本文的setting.json文件内容为:
{
"go.useLanguageServer": true,
"[go]": {
"editor.snippetSuggestions": "none",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"gopls": {
"experimentalWorkspaceModule": true,
"completeUnimported": true,
"usePlaceholders": true,
"completionDocumentation": true,
"hoverKind": "SynopsisDocumentation" // No/Synopsis/Full, default Synopsis
},
"files.eol": "\n", // formatting only supports LF line endings
}
该文件不是保存在工作目录,而是C:\Users\[hostname]\AppData\Roaming\Code\User。
至此,环境安装、配置完成。