编辑
2022-09-26
Golang
00
请注意,本文编写于 786 天前,最后修改于 786 天前,其中某些信息可能已经过时。

目录

包声明
导入导出
导出
导入
外部的包
导入自定义包
设置包的别名

包声明

包:是包含一个或多个 Go 源文件或其他 Go 包的目录。 这意味着每个 Go 源文件都必须属于一个包,并且包声明在每个源文件的顶部完成

go
// 该文件属于 main 包 package main

注意

所以每个包的文件夹应各自独立

  • 虽然Go语法没有强制要求包名与其所在的目录名相同,但习惯上我们还是会保持这二者相同
  • 包可以定义在多层级的目录中;
  • 单个包的所有源码应存在相同的目录下,不同目录通常包含不同的包源码;
  • 包名一般开头是小写的,采用小驼峰式命名法;
  • 多个类似业务的公司可能会封装相同名称的包,为了确保唯一性,建议大家使用域名作为目录结构的一部分 。

相关信息

main包还应包含一个main()函数,该函数是一个特殊函数,充当可执行程序的入口点

导入导出

导出

其他语言一样,go 也有导入和导出的概念

go
// 创建一个 custom 文件夹作为 custom 包 // 在其中创建 code.go,声明包名 package custom // 不会被导出 var value int = 10 // 会被导出 var Value int = 20

相关信息

首字母小写的标识符不会被导出,并且对于定义它的包来说是私有的

导入

外部的包

go
// 下载一个日志记录包github.com/rs/zerolog/log go install github.com/rs/zerolog
go
package main import ( "github.com/rs/zerolog/log" cus "example/custom" ) func main() { log.Print(cus.Value) }

相关信息

  • 安装的软件包的 go doc,它通常位于项目的自述文件中
  • go doc 解析源代码并生成 HTML 格式的文档。对它的引用通常位于自述文件中。

导入自定义包

go
// 导入单个包 import "modA/custom"
go
// main.go package main // 导入多个包 import ( "fmt" "modA/custom" ) func main (){ // 20 fmt.Println(custom.Value) // undefined: custom.value fmt.Println(custom.value) }

image.png

设置包的别名

go
package main // 导入多个包 import ( "fmt" cus "modA/custom" ) func main (){ // 使用别名 fmt.Println(cus.Value) }

本文作者:Silon汐冷

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!