1、导包错误解决:https://blog.csdn.net/weixin_44676081/article/details/107279746
2、函数名大写,包外可调用,小写只能在包内调用
3、案例:
package lib1
import "fmt"
func init() {
fmt.Println("lib1 init ....")
}
//方法名首字母大些,相当于public修饰,别的包可调用
func Lib1Api() {
fmt.Println("lib1的方法执行")
}
package lib2
import "fmt"
func init() {
fmt.Println("lib2 init ....")
}
func Lib2Api() {
fmt.Println("lib2的方法执行")
}
package main
import (
"helloworld/src/5-init/lib1"
"helloworld/src/5-init/lib2"
)
func main() {
lib1.Lib1Api()
lib2.Lib2Api()
}
结果:
1)在 import导包时,先导lib1的包,执行init方法:lib1 init ….
2)再导lib2的包,执行init方法:lib2 init ….
3)再执行mainTest里面的main方法,分别调用lib1 和 lib2包的方法
匿名与别名
package main
import (
//匿名别名 _ :导入这个包,但是不使用这个包,只用于这个包的init来进行一些初始化
_ "helloworld/src/5-init/lib1"
//别名:自定义为mylib2
//mylib2 "helloworld/src/5-init/lib2"
//加点,可以不用写包名;尽量不使用加点的,因为别的包也加点,如果有同名方法,容易引起冲突
. "helloworld/src/5-init/lib2"
)
func main() {
//匿名
//lib1.Lib1Api()
//别名
//mylib2.Lib2Api()
//加点
Lib2Api()
}