Go语言空白表示符_的实例用法


Posted in Golang onJuly 04, 2021

在GO语言中,导入了包,却不在代码中使用它,是非法的。当这么做时,编译器是会报错的。其原因是为了避免导入过多未使用的包,从而导致编译时间显著增加。如下代码:

package main 

import (
    "geometry/rectangle" // 导入自定的包
)
func main() {

}

上面的程序将会抛出错误 imported and not used: "geometry/rectangle"

然而,在程序开发的活跃阶段,又常常会先导入包,而暂不使用它。遇到这种情况就可以使用空白标识符 _。

下面的代码可以避免上述程序的错误:

package main
import (  
    "geometry/rectangle" 
)
var _ = rectangle.Area // 错误屏蔽器
func main() {
}

var _ = rectangle.Area 这一行屏蔽了错误。我们应该了解这些错误屏蔽器(Error Silencer)的动态,在程序开发结束时就移除它们,包括那些还没有使用过的包。由此建议在 import 语句下面的包级别范围中写上错误屏蔽器。

有时候我们导入一个包,只是为了确保它进行了初始化,而无需使用包中的任何函数或变量。例如,我们或许需要确保调用了 rectangle 包的 init 函数,而不需要在代码中使用它。这种情况也可以使用空白标识符,如下所示。

package main 

import (
    _ "geometry/rectangle" 
)
func main() {

}

运行上面的程序,会输出 rectangle package initialized。尽管在所有代码里,我们都没有使用这个包,但还是成功初始化了它。

Golang 相关文章推荐
Go语言使用select{}阻塞main函数介绍
Apr 25 Golang
golang在GRPC中设置client的超时时间
Apr 27 Golang
解决golang结构体tag编译错误的问题
May 02 Golang
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
go 实现简易端口扫描的示例
May 22 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
入门学习Go的基本语法
Jul 07 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
golang生成vcf通讯录格式文件详情
Mar 25 Golang
golang使用map实现去除重复数组
Apr 14 Golang
Go 内联优化让程序员爱不释手
Jun 21 Golang
Go 语言结构实例分析
Jul 04 #Golang
Go语言基础知识点介绍
Jul 04 #Golang
详解Go语言Slice作为函数参数的使用
Jul 02 #Golang
golang 实用库gotable的具体使用
Jul 01 #Golang
试了下Golang实现try catch的方法
Jul 01 #Golang
Golang 语言控制并发 Goroutine的方法
Jun 30 #Golang
Golang的继承模拟实例
Jun 30 #Golang
You might like
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
一个简洁的多级别论坛
2006/10/09 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
javascript数组详解
2014/10/22 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
python实现绘制树枝简单示例
2014/07/24 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Python的垃圾回收机制详解
2019/08/28 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
什么是serialVersionUID
2016/03/04 面试题
婚假请假条格式及范文
2014/04/10 职场文书
园林技术专业求职信
2014/07/28 职场文书
股东出资证明书范例
2014/10/04 职场文书
荒岛余生观后感
2015/06/09 职场文书
生产实习心得体会范文
2016/01/22 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL