Hello World
Hello World 🎉
go
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}使用外部包
go
package main
import (
"fmt"
"rsc.io/quote"
)
func main() {
fmt.Println(quote.Go())
}go中的模块管理
go.mod文件- 作用:
- 模块定义: 明确定义了当前 Go 模块的名称、版本以及对其他模块的依赖关系。
- 依赖管理: 记录了项目所依赖的所有外部模块,包括模块路径、版本号等信息。
- 版本控制: 通过 go get 命令自动更新依赖的版本,并记录在 go.mod 文件中。
- 构建时使用: go build 命令会根据 go.mod 文件中的信息来查找和下载所需的依赖。
- 作用:
vendor文件夹- 作用:
- 本地依赖缓存: 将项目所依赖的外部模块源码下载到本地,形成一个完整的依赖副本。
- 隔离依赖: 避免了直接依赖全局的 GOPATH,确保项目在不同环境下构建的一致性。
- 离线开发: 在没有网络的情况下,可以从 vendor 文件夹中获取依赖。
- 生成方式:
- 使用
go mod vendor命令: 自动将 go.mod 中定义的依赖下载到 vendor 文件夹。
- 使用
- 作用:
- 两者的关系与区别:
- 互补: go.mod 文件是项目的依赖清单,而 vendor 文件夹是依赖的实际存储位置。两者共同保证了项目的依赖管理。
- 优先级: 在 Go 1.11 及以后版本中,go.mod 文件的优先级高于 vendor 文件夹。如果两者存在冲突,以 go.mod 文件为准。
- 使用场景:
- go.mod: 适合快速开发、频繁更新依赖的场景。
- vendor: 适合需要固定依赖版本、离线开发或多人协作的场景。
- 总结:
- go.mod 文件 是 Go 模块的配置文件,记录了项目的依赖信息。
- vendor 文件夹 是项目依赖的本地缓存,用于隔离依赖、保证构建的一致性。
- 两者共同 构成了 Go 项目的依赖管理机制,为项目的构建和部署提供了可靠保障。
- 常见问题:
- 什么时候需要使用 vendor 文件夹?
- 当项目需要在多个环境中构建时。
- 当项目依赖的模块版本不稳定时。
- 当需要进行离线开发时。
- 如何更新 vendor 文件夹?
- 使用 go mod tidy 命令来更新 go.mod 文件和 vendor 文件夹。
- 什么时候需要使用 vendor 文件夹?