【Golang入门】第一章:环境搭建与Hello World
1. 本文目标
- 完成Go语言开发环境搭建(Windows/MacOS/Linux)
- 理解GOROOT与GOPATH的区别
- 掌握Go Module模块化开发
- 编写并运行第一个Go程序
2. Go语言安装
2.1 下载安装包
访问Go官网下载页选择对应操作系统的安装包:
2.2 各系统安装步骤
Windows系统
- 双击下载的
.msi
安装包 - 默认安装路径为
C:\Go\
(建议保持默认) - 安装程序会自动添加
C:\Go\bin
到系统PATH环境变量
验证安装:
打开CMD执行命令:
go version
# 成功输出示例:go version go1.21.0 windows/amd64
MacOS系统
- 下载
.pkg
安装包 - 双击安装,默认路径为
/usr/local/go/
- 配置环境变量(使用Homebrew推荐):
# 通过Homebrew安装(推荐)
brew install go
Linux系统
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install golang-go# CentOS
sudo yum install golang# 手动安装(最新版本)
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
3. 环境变量核心概念
3.1 GOROOT
Go语言的安装目录,存放编译器、标准库等核心文件
- Windows默认:
C:\Go\
- Unix系统默认:
/usr/local/go
3.2 GOPATH
传统的工作区目录(Go Module启用后重要性降低),包含三个子目录:
src
: 存放项目源代码pkg
: 编译生成的库文件bin
: 生成的可执行文件
3.3 现代开发模式:Go Module
从Go 1.11版本开始引入的依赖管理机制,彻底解决了GOPATH的路径限制问题。
启用方法:
go env -w GO111MODULE=on
4. 创建第一个Go项目
4.1 初始化模块
新建项目目录并执行:
mkdir my-first-go-project
cd my-first-go-project
go mod init github.com/yourname/hello-world
成功生成go.mod
文件:
module github.com/yourname/hello-worldgo 1.21
4.2 编写Hello World
创建main.go
文件:
package main // 每个Go文件必须声明所属包import "fmt" // 导入标准库格式化包// main函数是程序入口
func main() {// 打印带换行的消息fmt.Println("Hello, CSDN!")fmt.Printf("当前Go版本: %s\n", goVersion())
}// 多返回值函数示例
func goVersion() string {return runtime.Version()
}
4.3 运行程序
go run main.go
# 输出:
# Hello, CSDN!
# 当前Go版本: go1.21.0
5. 项目结构规范
推荐的标准项目布局:
my-project/
├── go.mod # 模块定义文件
├── go.sum # 依赖校验文件
├── main.go # 主入口文件
└── internal/ # 内部私有代码└── utils/└── helper.go
6. 常见问题排查
Q1: 执行go
命令提示"command not found"
- 检查环境变量PATH是否包含
$GOROOT/bin
- 重新打开终端使配置生效
Q2: Go Module代理设置
# 设置国内镜像加速
go env -w GOPROXY=https://goproxy.cn,direct
Q3: 跨平台编译
# 编译Linux可执行文件
GOOS=linux GOARCH=amd64 go build -o hello-linux
7. 总结
通过本文您已经完成:
- ✅ 全平台Go开发环境搭建
- ✅ 理解核心环境变量作用
- ✅ 创建基于Go Module的现代项目
- ✅ 编写并运行首个Go程序
接下来我们将学习:《Golang变量与常量:从iota到作用域掌控》
代码资源
地址:https://download.csdn.net/download/gou12341234/90924326
下节预告:第二章《变量、常量与作用域》将深入讲解Go的变量声明方式、常量的iota黑魔法以及作用域陷阱!