Go语言基础
介绍
基础
介绍
- 本文介绍Go语言中包(包声明、包导入与调用、包成员访问权限、init函数、包管理(Go modules)等)、defer关键字、panic 与 recover、go doc 工具等相关知识。
基础
包
- Go语言源码高复用是以包的形式划分源代码。
- 包就是源文件(函数、数据等组成的*.go文件)的集合(目录),将各自相关的功能源码放到同一个目录下,以独立的模块维护,提供给其它项目使用。
包声明
- Go源文件中,使用 package 声明包的路径,编译器依据包路径找到对应包源代码并编译库文件,包中可包含多个原文件。
- 包声明使用 package 包名称。
- 包名称一般与其源文件所在目录的名称(没有强制要求)。
- 包名称命名使用简短明确的小写字母,同一个包中的源文件必须使用相同的包名。
// 自定义了两个包,整个应用目录结构如下-- test_go01|__ src // 源文件相关信息|__ main // main包|__ main.go|__ pkg_my_add // 自定义包|__ add.go|__ pkg_my_sub // 自定义包|__ sub.go// main.go
package mainimport ("fmt""pkg_my_add" // 导入包 pkg_my_add,注意需要配置GOPATH"pkg_my_sub" // 导入包 pkg_my_sub,注意需要配置GOPATH
)func main() {var a int = 10var b int = 20var c float32 = 30.3var d float32 = 40.5fmt.Println("a + b = ", pkg_my_add.Add(a, b))fmt.Println("c + d = ", pkg_my_add.Add(c, d))fmt.Println("a - b = ", pkg_my_sub.Sub(a, b))fmt.Println("c - d = ", pkg_my_sub.Sub(c, d))
}// add.go
package pkg_my_add // 声明包// 普通函数
// func Add(a int, b int) int {
// return a + b
// }// 使用泛型,支持 int, float32类型
func Add[T int | float32](a, b T) T {return T(a + b)
}// sub.go
package pkg_my_sub // 声明包// 普通函数
// func Sub(a int, b int) int {
// return a - b
// }// 使用泛型,支持 int, float32类型
func Sub[T int | float32](a, b T) T {return T(a - b)
}
输出结果
a + b = 30
c + d = 70.8