好好爱自己!

go-import下划线的作用

原文:http://studygolang.com/articles/4356

----------------------------------------------------------------------------------------------------------------------

在Golang里,import的作用是导入其他package,但是今天在看beego框架时看到了import 下划线,不知其意,故百度而解之。

  import 下划线(如:import _ hello/imp)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。

【示例】
 目录结构:
 GOPATH
      --bin
      --pkg
      --src
            main.go
          --hello
                --imp
                       init.go

 main.go

复制代码
1 package main
2 
3 import _ "hello/imp"
4 
5 func main() {
6     // imp.Print() 编译报错,说:undefined: imp
7 }

输出结果:imp-init() come here.
复制代码
复制代码
 1 package imp
 2 
 3 import "fmt"
 4 
 5 func init() {
 6     fmt.Println("imp-init() come here.")
 7 }
 8 
 9 func Print() {
10     fmt.Println("Hello!")
11 }
复制代码

 

  至于import的点操作和别名操作还是蛮简单而且也好理解,所以不再演示了。

posted @   立志做一个好的程序员  阅读(409)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

不断学习创作,与自己快乐相处

点击右上角即可分享
微信分享提示