首页 > 其他 > 详细

GOGOUP-5.init函数和Import导包

时间:2021-07-06 19:52:05      阅读:17      评论:0      收藏:0      [点我收藏+]

万丈高楼平地起-init函数和Import导包

  • golang 导入依赖库总是会执行init函数、其执行流程如图所示
    技术分享图片
  • 验证代码 注意( go env -w GO111MODULE=on 会出现编译报错问题:package gogoup/initfunc_import/lib1 is not in GOROOT (/usr/local/go/src/gogoup/initfunc_import/lib1)、设置成outo或者off即可)
    //lib1
    package lib1
    
    import (
    	"fmt"
    	"gogoup/initfunc_import/lib2"
    )
    
    func Test() {
    	fmt.Println("lib1 的Test()函数被执行了")
    	lib2.Test()
    }
    func init() {
    	fmt.Println("lib1 的init()函数被执行了 ")
    }
    //lib2
    package lib2
    
    import "fmt"
    
    func Test() {
    	fmt.Println("lib2 的Test()函数被执行了")
    }
    func init() {
    	fmt.Println("lib2 的init()函数被执行了 ")
    }
    //main
    package main
    
    import "gogoup/initfunc_import/lib1"
    
    func main() {
    	lib1.Test()
    }
    
    
    
  • 代码结构
    技术分享图片
  • 执行结果
    技术分享图片

导包的骚操作

  • 使用 _ "gogoup/initfunc_import/lib2" 匿名导入包,常见数据库驱动为了执行init函数中的配置
  • 使用 lb "gogoup/initfunc_import/lib2" 别名导入包,使用方式lb.Test()
  • 使用 . "gogoup/initfunc_import/lib2" 导入包所有的方法到本作用域(不推荐)

GOGOUP-5.init函数和Import导包

原文:https://www.cnblogs.com/nextworld/p/14978195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!