了解 Go 中的包和模块!
解开 go 中的包和模块:我一开始不明白的地方
当我开始使用 go 编程时,我已经有了很好的 c 基础,c 是我的第一门编程语言。这对我帮助很大,因为 go 与 c 有很多共同点——从简单性到性能。更少的关键字、更低的复杂性以及更平滑的学习曲线。但接下来的部分让我有点迷失:包、模块和 go mod 的东西。
我记得我在想:“我只想编译一个简单的程序,为什么我需要担心包?”模块呢?它们似乎凭空出现,每个人都说它们对于管理依赖关系至关重要。但别担心,我会用简单的方式为那些已经编程但尚未掌握 go 中这些东西的人解释一切。
go 中的包:划分和组织代码
首先,go 中包的概念与您在 c 中看到的非常相似。将包视为组织和重用代码的一种方式。在 c 中,当您将函数分成 .h 和 .c 文件时,在 go 中您会执行类似的操作,但使用包。每个包都对功能进行分组,并允许您导入代码其他部分所需的内容。
例如,您可以将它们拆分为包,而不是将所有函数放入一个文件中:
package main import "fmt" func main() { fmt.println("hello, go!") }
这里,fmt 是一个标准库包,负责 i/o 格式化。导入时,您可以访问其功能。并且您可以用同样的方式创建自己的包,使代码维护和组织更容易。
那么 go 模组呢?
现在,模块部分了。这就是事情变得有趣的地方。如果包就像 c 中的库,那么模块就像管理所有这些的“超级包”。它们允许您的项目以有组织且安全的方式轻松下载和使用第三方软件包。
go mod 是帮助您配置项目以使用这些模块的命令。当您使用 go mod init 启动一个新项目时,您实际上是在创建一个 go 将用来管理依赖项的配置。这意味着它将自动下载您的项目所需的包(无需像在 c 中那样手动下载)。
例如:
go mod init meu-projeto go get github.com/pacote/fantastico
使用这些命令,go 创建 go.mod 文件,该文件存储有关项目依赖项的信息。然后,当您运行 go build 时,go 会直接从互联网下载编译所需的所有内容,而无需您担心。
简而言之...
当你将代码组织到包中并使用模块来管理依赖项时,go 会变得更加高效。一开始它可能看起来令人困惑(我也没有立即理解它),但是一旦掌握了它,您就会意识到包和模块使您的代码更具可扩展性和更简洁。一切都进展得更好,尤其是在大型项目中。
以上就是了解 Go 中的包和模块!的详细内容,更多请关注其它相关文章!