当我开始用 Go 编程时,我已经在 C 方面打下了良好的基础,这是我的第一门编程语言。这对我帮助很大,因为 Go 与 C 有很多共同点——从简单性到性能。更少的关键字、更低的复杂性以及更平滑的学习曲线。但接下来的部分让我有点迷失:包、模块和 go mod.
之类的东西我记得我在想:“我只想编译一个简单的程序,为什么我需要担心包?”那么模块呢?它们似乎凭空出现,每个人都说它们对于管理依赖关系至关重要。但别担心,我会以简单的方式为那些已经编程但尚未掌握 Go 中这些内容的人解释所有内容。
首先,Go 中包的概念与您在 C 中看到的非常相似。将包视为组织和重用代码的一种方式。在 C 中,当您将函数分成 .h 和 .c 文件时,在 Go 中您会执行类似的操作,但使用包。每个包都对功能进行分组,并允许您导入代码其他部分所需的内容。
例如,您可以将它们分成包,而不是将所有函数都放入一个文件中:
package main import "fmt" func main() { fmt.Println("Hello, Go!") }
这里,fmt 是一个标准库包,负责 I/O 格式化。导入时,您可以访问其功能。并且您可以用同样的方式创建自己的包,使代码维护和组织更容易。
现在,模块部分。这就是事情变得有趣的地方。如果包就像 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 会变得更加高效。一开始它可能看起来令人困惑(我也没有立即理解它),但是一旦掌握了它,您就会意识到包和模块使您的代码更具可扩展性和更简洁。一切都进展得更好,尤其是在大型项目中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3