零基础小白配置VSCode上Go的运行环境 | 青训营笔记

245 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天


一、课前准备

1.1 Go下载,环境配置,配置VSCode上的Go开发环境:

起初在参考一些别的在VSCode上配置Go开发环境时,在VSCode安装Go依赖包时总会显示下载失败(GOPROXY已经换源为https://goproxy.cn),最后按照这篇文章终于配置成功了,这篇文字对Go环境变量含义的解释也非常好。1# GO开发环境配置

这篇文章则是1#第一篇文章的补充。2# 【GO】VSCode开发环境配置以及产生的一些问题的解决

输入ctrl+shift+p,输入go tools 选择Go: Install/Update Tools

image.png

至此,Go插件所依赖的go tools终于安装成功啦!

image.png

1.2 HELLO WORLD

package main

import "fmt"

func main() {
	fmt.Println("hello")
}

然而,此时的代码还是不能正常运行。因为在设置了Go的环境变量go env -w GO111MODULE=on后,需要初始化mod管理模块

image.png

为了解决这个问题,我们可以在VSCode的TERMINAL标签下(或当前项目目录的cmd命令行下)输入如下命令(helloworld是需要运行的文件名):

go mod init helloworld

补充一些mod相关的命令:

Go mod init <项目模块名称> //初始化模块:

Go mod tidy //依赖关系处理,根据go.mod文件

Go mod vendor //将依赖包复制到项目的vendor目录

Go list -m all //显示依赖关系

Go list -m -json all //显示详细依赖关系

Go mod download [path@version] //下载依赖

1.3 这里有一个愚蠢的问题

然而,此时在运行后,却出现了如下错误:

image.png

经过在互联网上检索,发现是没有按Ctrl+S保存更改过的helloworld.go文件! 3# Go failing - expected 'package', found 'EOF']

image.png

终于成功运行了第一个helloworld文件!

使用go run命令:

go run helloworld.go

image.png

注意,在windows中的VSCode使用go build命令后,生成的.exe文件不能用run运行。

image.png

而应该使用如下方式运行:

go build helloworld.go
./helloworld.exe

image.png

可以用go clean清除刚刚生成的.exe文件。

二、 知识点补充

2.1 补充一些Go环境变量详解:

4# go env环境变量详解(一)

5# go语言:环境变量GOPROXY和GO111MODULE设置

2.2 Q&A

    • Q:编译器生成的可执行文件很大,但源代码却很小。为何会这样?
    • A:在编译器生成的二进制文件中,必须包含执行程序所需的一切。这带来的缺点是二进制文件比源代码文件大,但优点是无须安装依赖就能运行程序。
    • Q:该使用命令go build还是go run?
    • A: 在开发阶段,推荐使用命令go run;程序开发完毕,可以分享时,建议使用go build.
    • Q: go buildgo run的不同点?

    • A: 命令go build执行编译,生成一个可执行的二进制文件,这个文件可用来运行程序;命令go run编译并运行程序.

参考资料

  1. 1# GO开发环境配置
  2. 2# 【GO】VSCode开发环境配置以及产生的一些问题的解决
  3. 3# Go failing - expected 'package', found 'EOF']
  4. 4# go env环境变量详解(一)
  5. 5# go语言:环境变量GOPROXY和GO111MODULE设置
  6. 6# 【后端专场 学习资料一】第五届字节跳动青训营