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
go语言求任意类型切片的长度操作
Apr 26 Golang
go语言中json数据的读取和写出操作
Apr 28 Golang
Golang 使用Map实现去重与set的功能操作
Apr 29 Golang
Go timer如何调度
Jun 09 Golang
Golang中channel的原理解读(推荐)
Oct 16 Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 Golang
详解Golang如何优雅的终止一个服务
Mar 21 Golang
如何解决goland,idea全局搜索快捷键失效问题
Apr 03 Golang
Go语言安装并操作redis的go-redis库
Apr 14 Golang
Golang 实现WebSockets
Apr 24 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缓存技术的使用说明
2011/08/06 PHP
php中explode与split的区别介绍
2012/10/03 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
JQuery切换显示的效果实例代码
2013/02/27 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
js实现随机点名功能
2020/12/23 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python通过正则表达式选取callback的方法
2015/07/18 Python
python实现按长宽比缩放图片
2018/06/07 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
使用python模拟高斯分布例子
2019/12/09 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
行政经理岗位职责
2013/11/09 职场文书
教师个人鉴定材料
2014/02/08 职场文书
40岁生日感言
2014/02/15 职场文书
优秀党员获奖感言
2014/02/18 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书