go中的包
一.介绍
包是Go语言中代码组织和重用的基本单位。
例如:
math是Go语言中的一个标准包,它提供了一些常用的数学函数和常量。要使用math包,需要先导入它,然后使用math.作为前缀来调用它的函数和常量。
import "math"
func main() {
fmt.Println(math.Pi) // 打印圆周率的值,约为3.14
fmt.Println(math.Sqrt(2)) // 打印2的平方根的值,约为1.41
fmt.Println(math.Sin(math.Pi / 6)) // 打印30度的正弦值,即0.5
fmt.Println(math.Pow(2, 10)) // 打印2的10次方的值,即1024
}
二.自己编写包
除了使用标准包,Go语言还可以自己编写包,以实现一些特定的功能。要编写一个包,需要遵循以下步骤:
1.创建一个目录,用于存放源文件,目录的名字就是包的名字
2.在目录中创建一个或多个源文件,每个源文件的第一行必须是package声明,指定该文件属于哪个包
3.在源文件中定义一些变量、常量、类型和函数,用于提供包的功能
4.在其他地方导入该包,使用import语句,并指定包的路径
5.使用该包的功能,使用包名.作为前缀来调用它的变量、常量、类型和函数
例如:
假设我们要编写一个名为circle的包,用于计算圆的面积和周长。我们可以按照以下步骤进行:
1.创建一个目录,命名为circle
2.在目录中创建一个源文件,命名为circle.go
3.在源文件中写入以下内容:
// circle.go
package circle // 声明该文件属于circle包
import "math" // 导入math包
const Pi = math.Pi // 定义一个常量Pi,等于math包中的Pi
func Area(r float64) float64 { // 定义一个函数Area,接受一个float64类型的参数r,表示圆的半径,返回一个float64类型的结果,表示圆的面积
return Pi * r * r // 返回Pi乘以r的平方
}
func Circumference(r float64) float64 { // 定义一个函数Circumference,接受一个float64类型的参数r,表示圆的半径,返回一个float64类型的结果,表示圆的周长
return 2 * Pi * r // 返回2乘以Pi乘以r
}
如果在其他地放导入包:
// main.go
package main // 声明该文件属于main包
import (
"fmt" // 导入fmt包
"circle" // 导入circle包,注意要指定完整的路径,这里假设circle目录和main.go文件在同一级目录下
)
func main() {
r := 10.0 // 定义一个变量r,赋值为10.0
fmt.Println(circle.Area(r)) // 调用circle包的Area函数,传入r作为参数,打印返回值
fmt.Println(circle.Circumference(r)) // 调用circle包的Circumference函数,传入r作为参数,打印返回值
}
注意:
如果该包里的标识符(变量,常量,类型和函数)的名字是首字母大写,那么他是可导出的,可以被其他包访问,如果是小写,那它就不能被其他包访问,只能在本包访问
三.常用包
1.time包:提供了时间和日期的处理功能,例如获取当前时间、格式化时间、计算时间差等。
2.strconv包:提供了字符串和基本数据类型之间的转换功能,例如将字符串转换为整数、浮点数、布尔值等,或者将整数、浮点数、布尔值等转换为字符串。
3.fmt包:提供了格式化输入输出的功能,例如打印数据到标准输出、读取数据从标准输入、格式化字符串等。