Go学习第1天:入门

Go全平台安装+配置+使用完整文档(Windows / macOS / Linux)

统一官网下载地址:https://go.dev/dl/,国内加速:https://golang.google.cn/dl/

Go1.16+默认启用Go Mod,废弃强制GOPATH目录,项目可在任意文件夹创建

一、各系统安装(3种平台分方案)

1.macOS(M1/M2/M3 ARM64 + Intel AMD64)

方案① Homebrew(推荐,最简)
zsh 复制代码
# 关闭brew自动更新(可选)
echo 'export HOMEBREW_NO_AUTO_UPDATE=1' >> ~/.zshrc && source ~/.zshrc
# 安装go
brew install go
# 升级:brew upgrade go
  • M系列安装路径:/opt/homebrew/opt/go/libexec
  • Intel:/usr/local/opt/go/libexec
方案② PKG官方安装包
  • M芯片:darwin-arm64.pkg;Intel:darwin-amd64.pkg
  • 双击pkg一路下一步,默认安装/usr/local/go,自动写入PATH环境变量
方案③ 手动压缩包安装
zsh 复制代码
# 下载后解压
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -zxf goxxx.darwin-arm64.tar.gz

2.Windows(Win10/Win11)

方案① MSI安装包(新手首选)

下载:windows-amd64.msi,双击安装,默认路径C:\Program Files\Go安装程序自动配置PATH,装完重启cmd/powershell即可

升级:直接下载新版msi覆盖安装。

方案② 绿色压缩包zip

解压到D:\go,手动把D:\go\bin添加到系统PATH环境变量。

3.Linux(Ubuntu/CentOS通用,amd64主流)

只有压缩包.linux-amd64.tar.gz,无安装程序,手动解压配置:

bash 复制代码
# 卸载旧版本
sudo rm -rf /usr/local/go
# 解压安装
sudo tar -C /usr/local -xzf goxxx.linux-amd64.tar.gz
# 临时生效PATH
export PATH=$PATH:/usr/local/go/bin

Ubuntu可选:sudo apt install golang-go(系统源版本偏低,不推荐开发)

二、全平台统一环境配置(国内必备:GOPROXY代理)

核心配置:GO111MODULE=onGOPROXY=https://goproxy.cn,direct,解决依赖拉取失败

1.macOS(默认zsh)

zsh 复制代码
# 永久写入配置
cat >> ~/.zshrc <<EOF
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.org
EOF
# 生效
source ~/.zshrc

bash用户替换配置文件:~/.bash_profile

2.Linux(Ubuntu bash)

bash 复制代码
cat >> ~/.bashrc <<EOF
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.org
EOF
source ~/.bashrc

3.Windows两种配置方式

① 临时生效(当前终端)
cmd 复制代码
# cmd
set GO111MODULE=on
set GOPROXY=https://goproxy.cn,direct
# PowerShell
$env:GOPROXY="https://goproxy.cn,direct"
② 永久生效(图形化)

此电脑→属性→高级系统设置→环境变量→用户变量→新建:

  • 变量名:GOPROXY
  • 变量值:https://goproxy.cn,direct
  • 新建GO111MODULE=on,保存后重启终端
③ Go命令一键全局配置(全平台通用,推荐)

任意系统终端执行,永久生效:

bash 复制代码
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.org

三、验证安装(全平台统一命令)

新开终端执行:

bash 复制代码
go version
# 查看全部环境变量
go env

输出版本号即安装成功。

四、HelloWorld标准工程(全平台代码一致,Go Mod规范)

代码一份源码,三平台直接编译运行 ,路径分隔使用filepath兼容系统差异

1.创建项目目录

bash 复制代码
# mac/linux
mkdir ~/go-demo/hello && cd ~/go-demo/hello
# windows cmd
mkdir D:\go-demo\hello && cd D:\go-demo\hello

2.初始化mod

把当前文件夹变成一个【Go 项目】,让 Go 能管理你的代码、依赖包、版本。没有它,Go 不知道这是一个项目,就不能正常编译、运行、导包。

它只做 3 件事:

  • 生成 go.mod 文件(项目唯一标识)
  • 声明项目名字叫 hello(可以自己改,比如 demo、myapp、user)
  • 开启 Go Modules 模式(现代 Go 唯一标准模式)

以后:

  • 你导入第三方包 → Go 自动下载
  • 你删除无用包 → Go 自动清理
  • 你编译运行 → Go 知道这是项目
bash 复制代码
go mod init hello

自动生成go.mod

3.编写main.go

go 复制代码
package main
import "fmt"
func main(){
	fmt.Println("Go跨平台运行成功")
}

4.运行&编译(三平台命令完全相同)

如果没有执行上面2的初始化操作这里执行 go run main.go 的时候就会报错:go: cannot find module providing package... 或者working directory is not part of a module

bash 复制代码
# 1.直接运行(调试)
go run main.go

# 2.编译生成可执行文件
go build
# mac/linux:生成./hello,运行 ./hello
# windows:生成hello.exe,cmd运行 hello.exe

五、Go Mod常用命令(全平台通用)

命令 功能
go mod tidy 自动下载依赖+清理无用包
go get github.com/xxx/xxx 拉取第三方库
go list -m all 查看项目所有依赖
go clean 清理编译缓存
go doc fmt.Println 查看官方文档

六、Go跨平台交叉编译(单点编译生成Win/Mac/Linux程序)

不用切换系统,本机一键编译其它系统可执行文件,通过GOOS(系统)、GOARCH(架构)控制:

bash 复制代码
# 1.Mac/Linux编译Windows exe
GOOS=windows GOARCH=amd64 go build -o app.exe
# 2.Windows编译Linux程序
SET GOOS=linux&&SET GOARCH=amd64&&go build -o app
# 3.Windows编译Mac程序
SET GOOS=darwin&&SET GOARCH=arm64&&go build -o app

GOOS取值windows/darwin/linuxGOARCHamd64(Intel)、arm64(M1/ARM)

七、VSCode统一开发配置(三平台一致)

  1. 安装VSCode,扩展搜索 Go(Google官方插件)
  2. 打开项目文件夹,自动弹窗安装工具:gopls、dlv调试器,全部Install All
  3. F5断点调试,Ctrl+S自动格式化代码

八、常见问题

  1. go: command not found:环境变量未生效,重新source配置/重启终端
  2. go get下载超时:检查GOPROXY配置,执行go env -w GOPROXY=https://goproxy.cn,direct
  3. 版本升级:
    • Mac brew:brew upgrade go
    • Windows/Linux:官网下载新版包覆盖安装
相关推荐
憧憬成为web高手1 小时前
[0CTF 2016]piapiapia
学习
眠りたいです2 小时前
现代C++:C++17中的新库特性
开发语言·c++·c++20·c++17
devnullcoffee2 小时前
亚马逊 Buy Box 数据采集完全指南(2026):Python 实战 + Pangolinfo API
开发语言·python·亚马逊数据采集·亚马逊数据 api·pangolinfo api·亚马逊 buy box 数据·亚马逊数据采集软件
imDwAaY2 小时前
贝叶斯网络到粒子滤波Python算法实现 CS188 Proj4 学习笔记
网络·人工智能·笔记·python·学习·算法
sleven fung2 小时前
Whisper库
开发语言·人工智能·python·算法·ai·whisper
天若有情6732 小时前
【C++趣味实战】仿写Burp代理逻辑!自定义可控迭代器:拦截Intercept/放行Forward/重放Repeater全实现
java·开发语言·c++
l1t2 小时前
DeepSeek总结的使用实体-组件-系统和基于存在性处理进行Python编程37-38
开发语言·python
迷藏4942 小时前
Python+DuckDB:轻量级BI流水线实战
java·开发语言·python·原型模式
咋吃都不胖lyh2 小时前
短期记忆和长期记忆都存 MySQL
android·java·开发语言