0
点赞
收藏
分享

微信扫一扫

代码随想录算法训练营DAY51|115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

佃成成成成 2024-06-28 阅读 25

问题1:什么是go.mod以及它是用来解决什么问题的?

传统上,若不使用go mod,则需要要通过GOPATH来管理依赖,而这种方式存在一些问题:

如1. 包管理依赖不明确

2. 依赖库的版本管理

3. 需要手动管理同步依赖的复杂性等

而go mod可以帮助开发者在项目中明确管理依赖的版本、自动下载依赖、提供依赖版本的更新与回退等功能,从而改善Go语言的包管理体验。

问题2:go.sum的作用以及为什么要把go.mod和go.sum分开

考虑到下载的依赖包有可能是被黑客恶意篡改的,以及缓存在本地的依赖包也有被篡改的可能,单单一个go.mod文件并不能保证一致性构建。

为了解决Go module的这一安全隐患,Go开发团队在引入go.mod的同时也引入了go.sum文件,用于记录每个依赖包的哈希值。

在构建时,如果本地的依赖包hash值与go.sum文件中记录得不一致,则会拒绝构建。

因此,该文件记录了每个依赖模块的校验和,用于确保依赖的安全性和可重现性。在执行 go build 或 go run 时,Go 会检查 go.sum 文件以确保依赖的完整性。

同时,由于这两个文件分别负责不同的分工:区分模块信息和依赖校验信息,来确保项目的依赖管理的准确性和安全性,要把它们放在不同的文件。

举报

相关推荐

0 条评论