原文: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的点操作和别名操作还是蛮简单而且也好理解,所以不再演示了。

go-import下划线的作用的更多相关文章

  1. python里面 __future__的作用 & 下划线的作用 & 3.0实现不换行

    参考这篇文章: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820 ...

  2. scala下划线的作用

    https://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala Existent ...

  3. Python下划线与命名规范

    Python下划线与命名规范 先看结论,节省只想知道答案你的宝贵时间: _xxx 不能用于from module import * 以单下划线开头的表示的是protected类型的变量.即保护类型只能 ...

  4. [转帖]Go中的下划线

    Go中的下划线 https://blog.csdn.net/wanglei9876/article/details/50475864 下划线的作用: 在import 时 是仅引入 init 函数 在正 ...

  5. sql 字符带下划线匹配问题

    SQL 中 _下划线 作用是 匹配一个任意字符. 如果我们要去掉下划线的作用 单纯只用作一个字符则需要转义成    like '%\_%' escape '\' 字段 1.order_qrsc 2.o ...

  6. python——双下划线与python命名机制

    python中双下划线的作用(1)所有以双下划线开头的成员是私有的(2)python对于私有变量是会进行扎压(mangling)的,扎压规则是原始定义:class A():    __function ...

  7. python中的单下划线和双下划线意义和作用

    Python中并没有真正意义上的“私有”,类的属性的的可见性取决于属性的名字(这里的属性包括了函数).例如,以单下划线开头的属性(例如_spam),应被当成API中非公有的部分(但是注意,它们仍然可以 ...

  8. python下划线作用初识

    单下划线(例:_textchar) 以单下划线做前缀的名称指定了这个名称是"私有的".在 有些 导入import * 的场景中,下一个使用你代码的人(或者你本人)会明白这个名称仅内 ...

  9. _ 下划线 vue mixins 混入 变量前有下划线 变量不起作用

    _ 下划线 vue mixins 混入 变量前有下划线 变量不起作用

随机推荐

  1. 关于TREEVIEW的ONSELECTEDNODECHANGED事件

    MSDN:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.treeview.selectednodechanged( ...

  2. glm 矩阵乘法得反过来写

  3. linux下PPTP Server测试环境搭建

    1.1  服务器软件安装 安裝PPTP  Server 所需的软件: 安装PPTP: sudo apt-get install pptpd PPTP Server的软件安装很简单,只需要安装pptpd ...

  4. PHP自定义函数及内部函数考察点

    变量的作用域和静态变量 变量的作用域 变量的作用域也称变量的范围,变量的范围即它定义的上下文背景(也是它的生效范围).大部分的PHP变量只有一个单独的范围.这个单独的范围跨度同样包含了include和 ...

  5. WPS 常用操作

    1.WPS屏保太美了,如何保存 网上搜到如下资料,发现可以在电脑中找到若干个被缓存的图片,kwallpaper可能为kscreensaver

  6. 获取windows版本号

    原文:https://blog.csdn.net/justFWD/article/details/44856277 内容整理如下,点击跳至指定内容: manifest文件加上compatibility ...

  7. 08C++函数

    函数 4.1 概述 一个较大的程序不可能完全由一个人从头至尾地完成,更不可能把所有的内容都放在一个主函数中.为了便于规划.组织.编程和调试,一般的做法是把一个大的程序划分为若干个程序模块(即程序文件) ...

  8. base64记载

    一丶 js /** * * Base64 encode / decode * * @author haitao.tu * @date 2010-04-26 * @email tuhaitao@foxm ...

  9. C# defult关键字

    一.问题 今天写一个函数提示用defult,因为第一次用记录一下 public static T GetConfig<T>(string strConfig) { try { return ...

  10. torch.nn.Embedding理解

    Pytorch官网的解释是:一个保存了固定字典和大小的简单查找表.这个模块常用来保存词嵌入和用下标检索它们.模块的输入是一个下标的列表,输出是对应的词嵌入. torch.nn.Embedding(nu ...