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 原生http web 服务跨域restful api的写法介绍
Apr 27 Golang
Golang 空map和未初始化map的注意事项说明
Apr 29 Golang
Golang 使用Map实现去重与set的功能操作
Apr 29 Golang
Go语言 go程释放操作(退出/销毁)
Apr 30 Golang
go设置多个GOPATH的方式
May 05 Golang
goland 设置project gopath的操作
May 06 Golang
go 实现简易端口扫描的示例
May 22 Golang
深入理解go slice结构
Sep 15 Golang
Go 语言中 20 个占位符的整理
Oct 16 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
golang三种设计模式之简单工厂、方法工厂和抽象工厂
Apr 10 Golang
golang生成并解析JSON
Apr 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
Python定时器实例代码
2017/11/01 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
UML设计模式笔试题
2014/06/07 面试题
个人社会实践自我鉴定
2014/03/24 职场文书
计算机软件专业求职信
2014/06/10 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
新学期开学标语
2014/06/30 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
同学会演讲稿
2019/04/02 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
配置nginx 重定向到系统维护页面
2021/06/08 Servers
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
Python合并pdf文件的工具
2021/07/01 Python
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android