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 相关文章推荐
golang在GRPC中设置client的超时时间
Apr 27 Golang
goland 清除所有的默认设置操作
Apr 28 Golang
解决golang在import自己的包报错的问题
Apr 29 Golang
go xorm框架的使用
May 22 Golang
Golang 语言控制并发 Goroutine的方法
Jun 30 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
golang生成vcf通讯录格式文件详情
Mar 25 Golang
golang操作rocketmq的示例代码
Apr 06 Golang
GO语言异常处理分析 err接口及defer延迟
Apr 14 Golang
Golang Elasticsearches 批量修改查询及发送MQ
Apr 19 Golang
Go语言怎么使用变长参数函数
Jul 15 Golang
Go中使用gjson来操作JSON数据的实现
Aug 14 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
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
七年级地理教学反思
2014/01/26 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
商业街策划方案
2014/05/31 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android