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 08 Golang
golang中切片copy复制和等号复制的区别介绍
Apr 27 Golang
golang 实现对Map进行键值自定义排序
Apr 28 Golang
golang switch语句的灵活写法介绍
May 06 Golang
Golang全局变量加锁的问题解决
May 08 Golang
go语言使用Casbin实现角色的权限控制
Jun 26 Golang
使用GO语言实现Mysql数据库CURD的简单示例
Aug 07 Golang
golang中的struct操作
Nov 11 Golang
golang使用map实现去除重复数组
Apr 14 Golang
Golang解析JSON对象
Apr 30 Golang
GoFrame框架数据校验之校验结果Error接口对象
Jun 21 Golang
Go语言编译原理之变量捕获
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 URL编码解码函数代码
2009/03/10 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
python tkinter组件使用详解
2019/09/16 Python
python库matplotlib绘制坐标图
2019/10/18 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
python程序如何进行保存
2020/07/03 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
Python函数调用追踪实现代码
2020/11/27 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
公司周年庆典标语
2014/10/07 职场文书
具结保证书
2015/01/17 职场文书
2015初中团委工作总结
2015/07/28 职场文书
离婚协议书范文2016
2016/03/18 职场文书
导游词之青岛崂山
2019/12/27 职场文书
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技