完整 Go 入门指南:设置、语法与第一个程序
Source: Dev.to
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。
Source: …
介绍
你是否曾经想要学习一门新的编程语言,却面对众多选择感到犹豫:Java、Python、Rust、Go?我做了调查,Go 引起了我的兴趣,正如 JetBrains 报告中所示(链接)。Go 的用户大约有 480 万。许多公司因其高性能而广泛采用 Go 进行后端开发和库的构建。
Go 有许多优势,我们将在后续文章中详细介绍。下面简要回顾一下 Go 的背景:
- 由 Google 创建;首次公开发布于 2009 年。
- 旨在解决 Google 大规模系统面临的问题(编译慢、复杂度高、并发支持不足)。
- 目标是保持简洁、对开发者友好且易读——比 C++ 或 Java 更易上手,同时保留它们的许多优势。
在本文结束时,我们将完成 Go 的安装并编写我们的第一个程序。
安装与验证
步骤 1 – 下载并安装
- 访问官方下载页面: .
- 获取适用于您操作系统的安装程序并运行它。
- 安装程序会设置 Go 并配置必要的路径。
提示: 在 macOS 上,您也可以通过 Homebrew 安装:brew install go。
步骤 2 – 验证安装
打开终端(bash、PowerShell 等)并运行:
go version
# Example output:
# go version go1.25.5 darwin/arm64
如果您看到类似 go version go1.21.5 … 的输出,说明安装成功,Go 已可使用。
什么是 Go 模块?
Go 模块 是一组 Go 文件的集合,其中包含一个 go.mod 文件。go.mod 文件记录了模块的名称及其依赖项。过去,这些工作是通过特殊的工作区(GOPATH)来处理的,但模块已经取代了这种方式。
创建新模块
mkdir my-go-app
cd my-go-app
# 将 <module-name> 替换为你喜欢的名称(例如,仓库 URL)
go mod init my-first-go-project
该命令会创建一个 go.mod 文件,它成为你的 Go 项目的根目录。此后所有命令都相对于该文件夹执行。


怀旧的 “Hello, World!”
在项目文件夹中创建一个名为 main.go 的文件,并添加以下代码:
package main // Every executable program starts with package main
import "fmt"
// Unlike Python, where functions like print are built‑in,
// in Go they live in packages; we need fmt for printing.
func main() { // Entry point of the program
fmt.Println("Hello, World!") // Prints the text
}
运行与构建:go run vs go build
go run — 快速测试
为什么使用它? 用来立即检查代码是否能运行;不会留下可执行文件。
go run main.go

go build — 创建可执行文件
为什么使用它? 用来编译生成一个独立的二进制文件,能够在没有安装 Go 的机器上共享或运行。
go build main.go # 生成可执行文件(例如 Windows 上的 main.exe)
运行该命令后,你会在文件夹中看到一个二进制文件(macOS/Linux 上为 main,Windows 上为 main.exe)。可以直接执行它。
当前项目布局
运行以下命令查看目录结构(在 Windows 上使用 dir):
ls -la
# Output:
# my-go-app/
# ├── go.mod # Module definition
# ├── main.go # Source code
# └── main # Compiled binary (or main.exe on Windows)
变量和基本类型
变量是用于存储数据的容器。Go 是 静态类型,因此每个变量的类型必须在编译时确定。
基本类型
| 类型 | 描述 |
|---|---|
string | 文本(例如,"Hello") |
int | 整数(例如,10、-10) |
float64 | 小数(例如,3.14) |
bool | 布尔值(true 或 false) |
声明变量的三种方式
1. 完整声明(冗长)
var name string = "Tom Cruise"
var age int
age = 25
2. 类型推断(更简洁)
var name = "Tom Cruise" // Go infers `string`
var age = 25 // Go infers `int`
3. 短变量声明(函数内部)
func main() {
name := "Tom Cruise" // := declares & infers type
age := 25
fmt.Println(name, age)
}
Go 中的变量声明
下面列出了在 Go 中声明变量的不同方式,并附有简短示例。
1. 完整声明(函数外)
package main
import "fmt"
var name string = "Tom" // 完整声明并指定类型
var age = 30 // 类型推断 – Go 推断为 `int`
func main() {
fmt.Println(name, age)
}
2. 短声明(主要在函数内部)
使用 := 运算符。它在一步中 声明并 初始化变量。
package main
import "fmt"
func main() {
name := "Tom" // string
age := 25 // int
isActor := true // bool
height := 5.5 // float64
fmt.Println(name, age, isActor, height)
}
3. 综合示例
一个结合了不同声明方式的 main.go 示例:
package main
import "fmt"
func main() {
var name string = "Tom" // 完整声明
var age = 25 // 类型推断
isActor := true // 短声明(在 main 中)
height := 5.5 // Float64
fmt.Println(name, age, isActor, height) // 使用变量
age = 26 // 修改变量
fmt.Println(name, age, isActor, height) // 再次使用变量
}
接下来做什么?
我们已经:
- 安装了 Go
- 创建了基于模块的项目
- 运行了我们的第一个程序
- 学习了基本数据类型和变量声明
亲自尝试
- 修改
fmt.Println语句中的信息。 - 创建新变量并为其存储不同的值。
- 尝试将字符串赋给
int变量,观察编译器错误。 - 使用
go build构建可执行文件并分享给朋友。
在后续的文章中,我们将介绍更多语法,包括 条件语句 和 循环。
需要帮助吗? 在评论中留下你的输出或任何问题,我会尽力为你解答。