1、关于包
包(package)
是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt
、os
、io
等。
2、包定义
我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放.go
文件的文件夹。 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属的包。
package 包名
3、包的可见性
如果想在一个包中引用另外一个包里的标识符(如变量、常量、类型、函数等)时,该标识符必须是对外可见的(public)。在Go语言中只需要将标识符的首字母大写就可以让标识符对外可见了。
4、init()函数
每个包导入的时候会自动执行一个名为`init()`的函数,它没有参数也没有返回值,也不能手动调用
代码展示
包结构:
在calc_demo的calc.go定义了一个Sum()函数
package calc
import "fmt"
func init() {
fmt.Println("自动执行calc")
}
func Sum(x, y int) int {
return x + y
}
在import_demo中引用此包:
package main
import (
"fmt"
calc "go/0119/calc_demo"
)
var x = 100
const pi = 3.14
func init() {
fmt.Println("自动执行import")
fmt.Println(x, pi)
}
func main() {
ret := calc.Sum(10, 20)
fmt.Println(ret)
}
执行结果:
自动执行calc
自动执行import
100 3.14
30
分析:
1、首先是先执行的calc.go里的init(),然后执行main.go里面的init()。
2、调用的时候默认包名和import的最好一致;如果不一致,会默认在前面加一个相同的名字来补充
3、调用函数需要大写