这是我参与「第五届青训营 」伴学笔记创作活动的第 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
至此,Go插件所依赖的go tools终于安装成功啦!
1.2 HELLO WORLD
package main
import "fmt"
func main() {
fmt.Println("hello")
}
然而,此时的代码还是不能正常运行。因为在设置了Go的环境变量go env -w GO111MODULE=on后,需要初始化mod管理模块
为了解决这个问题,我们可以在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 这里有一个愚蠢的问题
然而,此时在运行后,却出现了如下错误:
经过在互联网上检索,发现是没有按Ctrl+S保存更改过的helloworld.go文件!
3# Go failing - expected 'package', found 'EOF']
终于成功运行了第一个helloworld文件!
使用go run命令:
go run helloworld.go
注意,在windows中的VSCode使用go build命令后,生成的.exe文件不能用run运行。
而应该使用如下方式运行:
go build helloworld.go
./helloworld.exe
可以用go clean清除刚刚生成的.exe文件。
二、 知识点补充
2.1 补充一些Go环境变量详解:
5# go语言:环境变量GOPROXY和GO111MODULE设置
2.2 Q&A
-
- Q:编译器生成的可执行文件很大,但源代码却很小。为何会这样?
- A:在编译器生成的二进制文件中,必须包含执行程序所需的一切。这带来的缺点是二进制文件比源代码文件大,但优点是无须安装依赖就能运行程序。
-
- Q:该使用命令
go build还是go run? - A: 在开发阶段,推荐使用命令
go run;程序开发完毕,可以分享时,建议使用go build.
- Q:该使用命令
-
-
Q:
go build和go run的不同点? -
A: 命令
go build执行编译,生成一个可执行的二进制文件,这个文件可用来运行程序;命令go run编译并运行程序.
-