golang包
包
go语言通过包来管理代码结构,即package
这一关键字。package xxx即可声明当前文件属于哪个包。
包注意点
package main
是独特的声明,表明他是项目的入口,同时在这个go文件里需要定义func main
作为入口函数。- 自定义包一般是新建目录,然后下属的go文件的
package
为这个目录名
即自定义包。引入时可以相对路径也可以绝对路径。 绝对路径的起点是src
即源码目录。相对路径则不用多说了。 - 自定义包内,若是需要导出的成员,需要将首字母大写才可以认为是导出的,否则是不能杯go编译器识别为导出了成员,也就不能使用了。
- 同一个包内的的文件可以相互调用。
简单案例
下面这是一个简单的包案例
t1是一个自定义的包
package doPkgTest
import "fmt"
var Tt = "ss"
var TestVar = 3
func Pri() {
fmt.Println("pri")
}
而hello.go则package main
package main
import (
"fmt"
"test1/src/doPkgTest"
// 引入包
)
func main() {
fmt.Println("hello world")
doPkgTest.Pri()
fmt.Printf("%s,%d", doPkgTest.Tt, doPkgTest.TestVar)
// 需要链式的 包名.成员 来调用。
}
了解函数初始化
init函数是go内置的函数,在每一个go文件内都有一个init的周期函数,他在函数执行之前被调用。
package2
package package2
import "fmt"
func Do2() {
fmt.Println("do2")
}
func init() {
fmt.Println("init package2")
}
package1
import (
"fmt"
"test1/src/package2"
)
func Do1() {
fmt.Println("do1")
package2.Do2()
}
func init() {
fmt.Println("init package1")
}
main
package main
import "test1/src/package1"
func main() {
//通过 内置的 init函数来了解调用和初始化的周期
package1.Do1()
//init package2
//init package1
//do1
//do2
}
总结
本次文章学习了go的包的一些概念和使用。
结语
本次的文章到这里就结束啦!♥♥♥读者大大们认为写的不错的话点个赞再走哦 ♥♥♥
每天一个知识点,每天都在进步!♥♥