返回
Go语言基础之包
后端
2023-08-10 13:47:03
Go 语言基础:包
在 Go 语言中,包 是组织代码的基本单位,每个包都有其独一无二的名称。包内的代码属于该包,并且可供其他包导入使用。
导入包
要导入一个包,只需在代码开头使用 import
语句:
import "fmt" // 导入 fmt 包
也可以为包指定别名:
import f "fmt" // 将 fmt 包导入为 f
创建包
要创建包,请在代码文件的开头使用 package
语句:
package mypkg // 创建名为 mypkg 的包
初始化包
每个包都可以有一个初始化函数,该函数在包导入时自动执行。初始化函数名为 init
,无参数且无返回值:
package mypkg
func init() {
fmt.Println("mypkg 初始化完成")
}
包级变量和常量
包级变量和常量可在包内任何位置声明,无需 var
或 const
。它们可被其他包导入使用:
package mypkg
var myVar int = 10
const myConst int = 20
包级函数
包级函数可在包内任何位置声明,无需 func
关键字。它们也可被其他包导入使用:
package mypkg
func MyFunc() {
fmt.Println("Hello from MyFunc")
}
包的可见性
包中的标识符分为:
- 导出标识符: 以大写字母开头,可被其他包导入使用。
- 未导出标识符: 以小写字母开头,仅限于包内使用。
package mypkg
var ExportedVar int = 10
var unexportedVar int = 20
包文档
包文档可包含在包注释中:
// Package mypkg provides a set of utility functions for working with strings.
package mypkg
// MyFunc is a function that returns a greeting.
func MyFunc() string {
return "Hello from MyFunc"
}
godoc
godoc
是 Go 语言的文档工具,可用于生成包文档:
godoc -http=:6060
在浏览器中打开 http://localhost:6060
即可查看包文档。
vendor 目录
vendor
目录用于管理 Go 语言依赖项。使用 go mod vendor
命令时,依赖项代码会被复制到 vendor
目录中,避免依赖项不一致的问题。
常见问题解答
1. 如何检查包是否已被导入?
使用 import path
查看导入的包:import "path/to/package"
。
2. 导出标识符和未导出标识符之间有何区别?
导出标识符可被其他包访问,而未导出标识符仅限于包内使用。
3. godoc 如何帮助我了解包?
godoc
生成包文档,其中包含类型、函数和变量的详细信息。
4. vendor 目录有什么好处?
vendor
目录确保依赖项一致,即使在不同开发环境中也是如此。
5. 如何编写一个好的包文档?
提供清晰、简洁的,包括代码示例和用法说明。