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 21 Golang
golang正则之命名分组方式
Apr 25 Golang
golang在GRPC中设置client的超时时间
Apr 27 Golang
golang 实现菜单树的生成方式
Apr 28 Golang
golang json数组拼接的实例
Apr 28 Golang
Go 实现英尺和米的简单单位换算方式
Apr 29 Golang
浅谈golang 中time.After释放的问题
May 05 Golang
解决Goland 同一个package中函数互相调用的问题
May 06 Golang
golang fmt格式“占位符”的实例用法详解
Jul 04 Golang
golang中字符串MD5生成方式总结
Jul 04 Golang
Golang流模式之grpc的四种数据流
Apr 13 Golang
Golang 并发编程 SingleFlight模式
Apr 26 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微信红包API接口
2015/12/05 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
jquery 获取json数据实现代码
2009/04/27 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
JS 表单验证大全
2011/11/23 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
介绍一下write命令
2014/08/10 面试题
2016小学新学期寄语
2015/12/04 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python