Go の package
1.package
所有的 .go
文件,除了空行和注释,都应该注明自己所属的包,每个包都应该放在一个单独的目录里,不能把多个包放在同一个目录里,也不能把同一个包的文件,分拆在不同的文件中。同一个目录下的所有的 .go
文件,都必须声明为同一个包名。
- 包名都用小写
- 默认包名和文件夹的名字相同
- 包的路径,从
src
目录下面开始写 - 要想方法在外边引用,首字母必须大写
- 如果不想使用包的方法,可以匿名导入
- 不要进行循环套用,即 A 引用 B ,B 引用 C,C 又引用 B 是不可以的
文件1
package test01
import "fmt"
func Test() {
fmt.Println("我是 Test 文件")
}
文件2
package main
import (
"fmt"
"pengzhao.xyz/testpackage/test01" // 如果
)
func main() {
fmt.Println("这是main函数")
test01.Test() // 执行test 命令
}
// 输出
这是main函数
我是 Test 文件
2. init() 函数
int() 函数没有参数,也没有返回值,函数在程序运行时被自动调用,不能主动的调用。
package test01
import "fmt"
func init() {
fmt.Println("我是test01包里的 init 方法")
}
func Test() {
fmt.Println("我是 Test 文件")
}
package main
import (
"fmt"
"pengzhao.xyz/testpackage/test01" // 如果
)
func init() {
fmt.Println("我是main 包里的 init() 方法")
}
func main() {
fmt.Println("这是main函数")
test01.Test() // 执行test 命令
}
// 输出
我是test01包里的 init 方法
我是main 包里的 init() 方法
这是main函数
我是 Test 文件
如果多个包的数据相互调用,关系图如下: