Go 语言入门系列(一):环境搭建与第一个程序
一、安装 Go
从 go.dev/dl 下载安装包(macOS 可 brew install go)。验证:
$ go version
go version go1.22.0
go env 查看配置,初学只需知道 GOPATH(工作目录)和 GOMODCACHE(依赖缓存),默认即可。
二、第一个程序
package main
import "fmt"
func main() {
fmt.Println("Hello, Go")
}
go run hello.go 输出 Hello, Go。逐行理解:
package main:每个文件必须声明包。main是特殊包名,表示可执行程序;其他包名只能作为库被引用。import "fmt":导入标准库,导入未使用会编译失败。func main():入口函数,固定签名。- 左花括号必须与语句同行,否则编译报错。
三、run / build / install 的区别
go run:编译并立即运行,产物在临时目录。开发验证用。go build:在当前目录生成二进制,不依赖 Go 环境,可拷走直接运行。交付用。go install:编译并装到$GOPATH/bin,用于安装工具。
记忆:开发 run,交付 build,装工具 install。
四、Go Modules
$ go mod init example.com/hello-go
生成 go.mod:
module example.com/hello-go
go 1.22
module行是模块路径,也是包导入前缀;开源库应写真实仓库地址。go行声明语言版本。
子包导入规则:导入路径 = 模块路径 + 子目录路径。例如 greet/greet.go 声明 package greet,main.go 用 import "example.com/hello-go/greet",调用 greet.Hello()。
五、常用命令
go fmt ./...:格式化,Go 风格强制统一go vet ./...:静态检查,抓 Printf 参数不匹配等 buggo doc fmt.Println:终端查文档go mod tidy:清理/补全依赖./...表示递归所有包,几乎所有命令通用
工作流:写码 → fmt → vet → run 验证 → 提交。
六、一个坑:包名与目录名
约定包名与目录名一致。导入写的是目录路径,调用用的是包名。不一致时可起别名:
import g "example.com/hello-go/greet"
g.Hello("Gopher")
初学最稳妥:目录名 = 包名。
七、小结
go mod init建模块,go.mod记录路径与依赖- 包分可执行(
main)与库两类 run/build/install分工明确fmt、vet、doc、mod tidy构成日常工作流
练习:给项目加一个 calc 子包提供 Add 函数,在 main 调用,go build 后拷到别处直接运行,体会 Go 交付的简单。
下一篇讲语法主干:变量、零值、类型、控制流、函数。

浙公网安备 33010602011771号