【go语言】2.4.1 如何导入和使用包
在 Go 语言中,包(package)是代码的组织方式。每个 Go 程序都由包构成,程序从 main 包开始运行。
导入包
使用 import
关键字可以导入包。导入的包可以是 Go 标准库中的包,也可以是第三方的包,或者是你自己编写的包。以下是一个导入标准库中的 fmt
包和 math
包的例子:
import (
"fmt"
"math"
)
在上面的代码中,我们导入了 fmt
和 math
两个包,然后就可以在代码中使用这两个包的公开(导出)的函数、类型和变量。
使用包
使用包中的函数、类型或变量,需要在其前面加上包名。例如,我们可以使用 fmt
包的 Println
函数来输出一行文本:
fmt.Println("Hello, world!")
我们也可以使用 math
包的 Pi
变量:
fmt.Println("Value of Pi is:", math.Pi)
导入自定义包
你也可以创建自己的包,并在其他地方导入使用。假设我们有一个包的目录结构如下:
myproject/
|-- go.mod
|-- main.go
|-- mathext/
|-- mathext.go
在 mathext/mathext.go
中,我们有一个自定义的包:
package mathext
// Add adds two integers.
func Add(a, b int) int {
return a + b
}
在 main.go
中,我们可以导入并使用这个自定义的包:
package main
import (
"fmt"
"myproject/mathext"
)
func main() {
sum := mathext.Add(1, 2)
fmt.Println("The sum is", sum) // Outputs: The sum is 3
}
注意在导入自定义包时,路径是相对于 Go Modules 的模块路径的。
Go Modules
自 Go 1.11 版本开始,Go 语言引入了官方的包管理工具 Go Modules。用于管理依赖的版本和包的导入路径。
你可以使用 go mod init [module-path]
命令来初始化一个新的模块,创建一个 go.mod
文件。
例如,如果你在 myproject
目录下运行 go mod init github.com/yourusername/myproject
,那么 github.com/yourusername/myproject
就是你项目的模块路径,你的自定义包 mathext
的导入路径就是 github.com/yourusername/myproject/mathext
。
总的来说,Go 的包管理提供了一种简单且强大的方式来组织和复用代码。理解如何导入和使用包,是学习 Go 语言的一个重要步骤。
推荐阅读: