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 实现两个结构体复制字段
Apr 28 Golang
Golang 使用Map实现去重与set的功能操作
Apr 29 Golang
golang fmt格式“占位符”的实例用法详解
Jul 04 Golang
基于Go语言构建RESTful API服务
Jul 25 Golang
golang 语言中错误处理机制
Aug 30 Golang
golang实现一个简单的websocket聊天室功能
Oct 05 Golang
Go语言特点及基本数据类型使用详解
Mar 21 Golang
Go 中的空白标识符下划线
Mar 25 Golang
Golang 字符串的常见操作
Apr 19 Golang
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
Jun 21 Golang
Go微服务项目配置文件的定义和读取示例详解
Jun 21 Golang
基于Python实现西西成语接龙小助手
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
留言板翻页的实现详解
2006/10/09 PHP
一个简洁的多级别论坛
2006/10/09 PHP
php桌面中心(四) 数据显示
2007/03/11 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
如何让CI框架支持service层
2014/10/29 PHP
PHP实现递归无限级分类
2015/10/22 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
创意广告词
2014/03/17 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
党小组评议意见
2015/06/02 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书