
1、导包错误解决:https://blog.csdn.net/weixin_44676081/article/details/107279746
2、函数名大写,包外可调用,小写只能在包内调用
3、案例:
package lib1import "fmt"func init() {fmt.Println("lib1 init ....")}//方法名首字母大些,相当于public修饰,别的包可调用func Lib1Api() {fmt.Println("lib1的方法执行")}
package lib2import "fmt"func init() {fmt.Println("lib2 init ....")}func Lib2Api() {fmt.Println("lib2的方法执行")}
package mainimport ("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 mainimport (//匿名别名 _ :导入这个包,但是不使用这个包,只用于这个包的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()}
