第一章:环境搭建与Hello World

作者:Administrator 发布时间: 2026-03-13 阅读量:2 评论数:0

第一章:环境搭建与Hello World

1.1 Go语言简介

什么是Go语言?

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

设计目标:

  • 简洁性:语法简单,易于学习

  • 高效性:编译速度快,执行效率高

  • 并发性:原生支持并发编程

  • 可靠性:强类型系统,编译期错误检查

Go语言的特点:

特点

说明

编译型

直接编译成机器码,运行速度快

静态类型

变量类型在编译时确定

垃圾回收

自动内存管理,无需手动释放

内置并发

goroutine和channel让并发变得简单

快速编译

大型项目也能秒级编译

跨平台

一份代码,多平台运行

Go语言的应用场景

  • 云原生:Docker、Kubernetes都是用Go写的

  • 后端服务:高性能API服务

  • 微服务:轻量级服务架构

  • 网络编程:高并发网络应用

  • DevOps工具:各种CLI工具

1.2 安装Go环境

下载安装

Windows:

  1. 访问 https://golang.org/dl/

  2. 下载 Windows 安装包 (.msi)

  3. 双击安装,按向导完成

macOS:

# 使用Homebrew安装
brew install go
​
# 或者下载pkg安装包

Linux:

# 下载(以1.21版本为例,请替换为最新版本)
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
​
# 解压到/usr/local
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
​
# 添加环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

验证安装

go version

输出类似:

go version go1.21.5 linux/amd64

配置GOPATH(Go 1.13+ 可选)

从Go 1.13开始,推荐使用Go Modules管理依赖,GOPATH不再是必须的。

但建议设置一个工作目录:

# 添加到 ~/.bashrc 或 ~/.zshrc
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

配置Go Modules

Go Modules是Go官方的依赖管理工具,从Go 1.11引入,1.16成为默认。

# 启用Go Modules(Go 1.16+默认已启用)
go env -w GO111MODULE=on
​
# 设置国内镜像(加速下载)
go env -w GOPROXY=https://goproxy.cn,direct
​
# 查看配置
go env

1.3 第一个Go程序:Hello World

创建项目目录

# 创建工作目录
mkdir -p ~/go-projects/hello-world
cd ~/go-projects/hello-world
​
# 初始化Go模块
go mod init hello-world

执行后生成 go.mod 文件:

module hello-world
​
go 1.21

编写第一个程序

创建 main.go 文件:

package main
​
import "fmt"
​
func main() {
    fmt.Println("Hello, World!")
}

代码解析

package main          // 声明包名,main包是可执行程序的入口
​
import "fmt"          // 导入fmt包,用于格式化输入输出
​
func main() {         // main函数是程序的入口点
    fmt.Println("Hello, World!")  // 调用fmt包的Println函数打印字符串
}

关键点:

  • package main:每个可执行程序必须有且只有一个main包

  • import:导入其他包使用

  • func main():程序从这里开始执行

  • fmt.Println():打印一行内容并换行

运行程序

# 直接运行
go run main.go
​
# 编译成可执行文件
go build -o hello main.go
​
# 运行可执行文件
./hello

程序结构详解

项目目录/
├── go.mod          # 模块定义文件
├── go.sum          # 依赖校验文件(自动生成)
└── main.go         # 主程序文件

go.mod文件详解:

module hello-world      # 模块名称,通常是代码仓库路径
​
go 1.21                 # Go版本要求
​
require (               # 依赖列表
    github.com/some/package v1.2.3
)

1.4 Go命令行工具

常用命令

# 运行程序
go run main.go
go run .
​
# 编译程序
go build                    # 编译当前目录
go build -o app main.go    # 指定输出文件名
go build -ldflags "-s -w"  # 减小二进制体积
​
# 安装程序(编译并放到GOPATH/bin)
go install
​
# 格式化代码
go fmt ./...
​
# 检查代码
go vet ./...
​
# 运行测试
go test ./...
​
# 下载依赖
go mod download
​
# 整理依赖
go mod tidy
​
# 查看依赖
go mod graph
​
# 查看文档
go doc fmt.Println
go doc net/http
​
# 获取包
go get github.com/gin-gonic/gin
go get -u github.com/gin-gonic/gin  # 更新到最新版

交叉编译

Go支持在不同平台编译其他平台的可执行文件:

# Linux编译Windows可执行文件
GOOS=windows GOARCH=amd64 go build -o app.exe
​
# Windows编译Linux可执行文件(在PowerShell中)
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o app
​
# 常用GOOS/GOARCH组合
# linux/amd64, linux/arm64
# windows/amd64, windows/arm64
# darwin/amd64, darwin/arm64 (macOS)

1.5 开发环境配置

推荐IDE/编辑器

  1. VS Code + Go插件(免费,推荐初学者)

  2. GoLand(JetBrains出品,功能强大,付费)

  3. Vim/Neovim + vim-go(适合Vim用户)

VS Code配置

  1. 安装Go插件(由Go Team at Google提供)

  2. 安装工具:按 Ctrl+Shift+P,输入 Go: Install/Update Tools,全选安装

  3. 配置settings.json:

{
    "go.formatTool": "gofumpt",
    "go.lintTool": "golangci-lint",
    "go.toolsManagement.autoUpdate": true
}

1.6 练习

练习1:修改Hello World

修改程序,输出你的姓名和当前日期。

练习2:多文件程序

创建两个文件:main.gogreeting.go,在greeting.go中定义一个函数,在main.go中调用它。

练习3:交叉编译

尝试在本地编译一个其他平台的可执行文件。


评论