ESC
输入关键词搜索文章
目录

Go 入门 01

安装 · Hello World · 模块
先把第一段 Go 程序稳定跑起来
3命令
1模块
main入口包
Chapter 01
先安装,再运行

Go 程序从工具链开始。工具链指一组围绕语言工作的命令和程序,包括编译、运行、测试、格式化和依赖管理。Go 官方教程建议初学者先安装 Go,再用终端创建目录、初始化模块、运行一段最小程序。

定义:Go 工具链

Go 工具链通常通过 go 命令入口使用。你会反复用到 go run 运行程序、go test 执行测试、go mod 管理模块、go fmt 格式化代码。

安装完成后,在终端执行下面的命令确认版本:

go version

如果能看到类似 go version go1.xx darwin/arm64linux/amd64windows/amd64 的输出,说明工具链已经可用。版本号不需要和示例完全一致;初学阶段只要使用较新的稳定版本即可。

Project
创建第一个模块

Go 代码不是散落的一堆文件,而是按目录、包和模块组织起来。是一组位于同一目录、一起编译的源文件;模块是一组相关包的集合,用 go.mod 声明模块路径和依赖。

mkdir hello
cd hello
go mod init example/hello
go mod init 会生成 go.mod 文件。官方模块参考把模块定义为一起发布、版本化和分发的包集合;即使你暂时不发布代码,也应该从模块开始组织项目。
初学者选择:本地练习可以用 example/hello 这种模块路径。真正发布时,模块路径通常应该对应代码仓库地址,例如 github.com/you/project
Hello World
理解最小程序的每一行

hello 目录中创建 main.go

package main

import "fmt"

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

然后运行:

go run .

这个程序只有三层含义:package main 表示这是一个可执行程序所在的包;import "fmt" 引入标准库中的格式化输入输出包;func main() 是程序默认执行的入口函数。

代码作用初学者应记住
package main声明当前文件属于 main 包可执行程序必须有 main 包
import "fmt"导入格式化 I/O 标准库打印、字符串格式化常用它
func main()程序入口运行 main 包时默认调用
go run .编译并运行当前目录模块代码练习阶段最常用

表 1:第一个 Go 程序中的基本结构。

Workflow
初学阶段的最小工作流

写 Go 的第一周,不必记住所有命令。先把下面四个命令形成肌肉记忆:

go run .      # 运行当前程序
go fmt ./...   # 格式化当前模块里的 Go 文件
go test ./...  # 执行当前模块里的测试
go help        # 查看 go 命令帮助

让工具替你保持一致

Effective Go 强调 Go 通过 gofmt 统一格式。初学者不需要争论缩进风格,提交前运行 go fmt ./... 即可。

复习速查

  • 模块:由 go.mod 标识的一组包和依赖。
  • :同一目录下一起编译的 Go 源文件集合。
  • 入口:可执行程序使用 package mainfunc main()
  • 命令:练习阶段先掌握 go run .go fmt ./...go test ./...

参考来源