引言
笔者从深圳回厦门,过去工作主要写的C++,裸辞一个月后发现工作是真的难找,一方面大环境不好岗位不是很多,另一方面在很多C++细分方向上没有相关工作经验导致简历都过不了。打开招聘软件,看到本地Golang岗位相对较多,重新思考了一下职业规划,还是做后端比较有前途。这一系列的帖子用来记录自己的Golang学习过程,与大家共勉👊
通过这篇文章你将学会以下内容:
- 通过VSCode + WSL 搭建基于Linux的Golang开发环境
- 了解VSCode Go插件和Go语言开发工具链
- 使用Golang编写第一个hello world程序
一、安装WSL
Go语言编写的后端服务最终绝大部分都是部署在Linux服务器上,因此学习时最好将Go搭配Linux系统一起食用。
在 Windows 上安装 WSL (Windows Subsystem for Linux) 是在 Windows 环境下获得近乎原生 Linux 体验的最佳方式,非常适合进行 Golang 开发学习。
详细的安装方式就不赘述,可以参考微软官方的文档:安装 WSL | Microsoft Learn
安装好后,在命令行中输入wsl
即可进入Linux命令行,进行Linux命令操作:

二、安装Go
下载官方二进制包
-
访问Go语言的官方下载页面:golang.org/dl/
或者使用国内镜像源下载地址:studygolang.com/dl
-
找到最新版本(通常以
.linux-amd64.tar.gz
结尾),如果是ARM架构的苹果M系列电脑则选择linux-arm64
版本:

- 右键点击链接,选择"复制链接",然后将压缩包下载到本地文件夹,如
/tmp
:

bash
# 进入临时目录
cd /tmp
# 下载Go(如果一直下载不成功,切换成国内镜像的链接)
wget https://studygolang.com/dl/golang/go1.25.0.linux-amd64.tar.gz
解压到系统目录
我们需要将压缩包解压到 /usr/local
目录,这是安装本地软件的标准位置,解压后会创建创建 /usr/local/go
目录。
bash
# 使用 root 权限删除可能存在的旧版 Go,并将新版本解压到 /usr/local
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.25.0.linux-amd64.tar.gz

设置环境变量
为了让系统知道 go
命令的位置,需要将 Go 的二进制文件路径添加到PATH
环境变量中。配置环境变量的文件包括:
-
/etc/profile
:系统全局配置,影响所有用户。 -
~/.profile
:用户专属配置,只影响当前登录的用户。
由于是个人学习,选哪个都可以,这里可以选择/etc/profile
:
bash
sudo vi /etc/profile
然后在末尾添加以下内容:
bash
export PATH=$PATH:/usr/local/go/bin
环境变量配置完毕后使用 source 指令来使环境变量生效:
bash
source /etc/profile
最后敲go version
验证是否能正确输出版本号:

三、搭建VSCode开发环境
Go语言常用的IDE介绍可以参考:介绍几种Go语言开发的IDE - 知乎
笔者过去写代码比较习惯使用VSCode,因此基于VSCode搭建Go开发环境
安装VSCode
VSCode下载地址:Download Visual Studio Code - Mac, Linux, Windows ,傻瓜式安装就行,不赘述。
安装WSL插件
使用VSCode连接远程服务器进行开发时,传统的方式是使用Remote-SSH,但是对于WSL来说有一个更好的方法:Remote-WSL。它比传统的 SSH 连接更简单、更强大、更集成,你甚至不需要手动配置SSH,以下介绍WSL插件的安装方法和使用方法:
- 扩展商店(Ctrl+Shift+X)搜索:WSL,进行安装:

- 如何打开WSL目录?有两种方法:
第一种方法 :Ctrl+Shift+P 打开命令面板,输入wsl,在弹出的下拉选项中选择 WSL:Connect to WSL in New Window
:

打开的新窗口左下角显示的是WSL:Ubuntu说明成功,然后点击"打开文件夹",就可以打开WSL上的目录:

第二种方法 :先打开windows的命令行工具输入wsl
进入WSL,然后来到工程根目录下,敲code .
,就可以直接用VSCode打开该工程目录

安装Go插件
和其他语言一样,使用VSCode开发时需要安装该语言的插件,在扩展商店中直接搜索Go插件进行安装:

这里可以看一下微软官方文档:安装和配置 Visual Studio Code 以用于 Go 语言开发 - Go on Azure | Microsoft Learn。不过笔者实操过程中发现,Go: Install/Update tools
这一步会出现安装失败的问题:

实操过程中提示"xxxx FAILED",info里有提示timeout,表示与服务器连接超时:

问了大模型,说是要使用国内镜像站,我们可以编辑/etc/profile
:

设置完镜像后,直接手动安装就行,包括以下命令:
bash
go install golang.org/x/tools/gopls@latest
go install -v github.com/cweill/gotests/gotests@v1.6.0
go install -v github.com/josharian/impl@v1.4.0
go install -v github.com/haya14busa/goplay/cmd/goplay@v1.0.0
go install -v github.com/go-delve/delve/cmd/dlv@latest
go install -v honnef.co/go/tools/cmd/staticcheck@latest
Go 工具默认安装到 $GOPATH/bin
(通常是 ~/go/bin
):

接下来还得再设置环境变量 ,在/etc/profile
末尾添加,以便随时可以调用上述的gopls
等工具:
bash
export PATH=$PATH:$(go env GOPATH)/bin
为什么是这些命令?其实就是看报错信息中,什么命令执行失败了,所以在读者实操过程中,需要看根据自己的报错信息做一下调整:

通过手敲每个命令,可以成功安装,至于为什么通过VSCode的Go: Install/Update tools
无法安装,希望有大佬帮忙解答一下。
问题❓
整理安装Go插件过程中一些疑问:
Go插件和几个tool的关系
以上过程中,笔者有个疑问:这几个tool跟Go插件是什么关系?
这些tool是Go语言开发工具链,当你在VSCode中打开一个Go文件(.go
)时,Go扩展会自动检测并建议你安装这些工具,以提供强大的代码智能功能。

其实Go插件应该能够自动帮我们安装几个tool的,只不过由于啥未知原因我们需要手动操作。
可以测试一下,比如我们卸载gopls:
bash
rm $(go env GOPATH)/bin/gopls
然后重启VSCode,会发现插件会检测到gopls缺失,自动帮我们安装,所以可以理解为这几个tool才是实际起作用的工具,Go插件是自动帮我们管理这些tool的安装和更新:

顺便我们可以观察一下gopls这个工具的作用,下面第一张图是删除了gopls,第二张图是安装了gopls,可以发现代码提示是有差别的:


WSL终端和VSCode终端的配置文件差异
- 问题现象 :WSL终端(上图)和VSCode终端(下图)输入
gopls version
的结果不一样:


- 原因分析 :VSCode 出于性能和避免重复加载的考虑,默认以 非登录 Shell 启动终端,因此会跳过
~/.profile
和/etc/profile
。


验证结果:WSL终端(上图)为登录Shell,VSCode终端(下图)为非登录Shell


- 解决方案 :在
~/.bashrc
中添加PATH
设置(确保所有 Shell 都能加载):


四、第一个Go程序
hello world
学一门新语言,第一个程序当然是输出一行"Hello, world!"。先创建一个helloworld.go
文件,然后编写一下内容:
go
package main // 声明这是一个可执行程序(不是库)
import "fmt" // 导入标准库的格式化I/O包
func main() { // 程序入口函数
fmt.Println("Hello, world!") // 输出文本并换行
}
运行程序
有两种方式可以运行:
- 直接运行(go run)
这是最快捷的方式,适用于开发调试阶段。它会在内存中编译并立即运行程序,不会在磁盘上生成可执行文件。打开命令行,进入helloworld.go
文件所在的目录,执行go run命令
bash
go run helloworld.go
会立刻在终端看到输出结果:Hello, world!
- 先编译,后运行(go build)
类似于C++,这种方式会先将源代码编译成一个可执行的二进制文件 ,然后你可以运行这个文件,适用于部署和分发。进入helloworld.go
文件所在的目录,执行go build命令
bash
go build helloworld.go
这会在当前目录 下生成一个名为 helloworld
可执行文件

然后在命令行中执行./helloworld
,就可以看到输出结果Hello, World!
总结
这篇文章详细介绍了Golang开发环境的搭建方法,输出了第一个hello world程序。整个过程不会有太大难度,主要是VSCode安装Go插件后,Go: Install/Update tools
这一步遇到了一些阻碍。其次需要了解一下登录Shell和非登录Shell的概念,因为我们有时候使用的是WSL终端,有时候使用的是VSCode终端,这两个终端的配置文件存在差异,如果遇到找不到路径的问题时,需要留意一下。
今天是学习Golang的第一天,笔者会持续更新Golang学习笔记,感谢阅读~