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语言-为什么返回值为接口类型,却返回结构体
Apr 24 Golang
解决Golang中goroutine执行速度的问题
May 02 Golang
Go标准容器之Ring的使用说明
May 05 Golang
完美解决golang go get私有仓库的问题
May 05 Golang
Go 自定义package包设置与导入操作
May 06 Golang
Golang 获取文件md5校验的方法以及效率对比
May 08 Golang
Go语言设计模式之结构型模式
Jun 22 Golang
golang生成vcf通讯录格式文件详情
Mar 25 Golang
golang生成并解析JSON
Apr 14 Golang
详解Go语言中配置文件使用与日志配置
Jun 01 Golang
Go语言怎么使用变长参数函数
Jul 15 Golang
GO中sync包自由控制并发示例详解
Aug 05 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 代码优化的42条建议 推荐
2009/09/25 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
代码生成器 document.write()
2007/04/15 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
vue项目中导入swiper插件的方法
2018/01/30 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
创建文明学校实施方案
2014/03/11 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
重阳节慰问信
2015/02/15 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL