golang中_的作用没你想的那么简单

简介: golang中_的作用没你想的那么简单

1. 前言



这几天在看源码的过程中发现作者们都喜欢写大量的_符号,而这个符号对于我们来说在普通不过了,那它到底还有其他什么用途是我们还没有触及的呢?


今天我们就来聊聊项目中碰到的:_的使用


2. 第一种用法: 包导入



import (
   _ "net/http/pprof"
)


上面pprof是比较常见的操作


这种方式在我们项目中经常碰到,当你想用某个包的init函数去初始化某些资源的时候但是又不想引入包的其他资源,那么你就可以这么引入,这样引入只会调用init函数,否则你不加_会报错的。


3. 第二种用法: 返回值



_, err := callFn()

主要是忽略某个值


这种用法可以说在项目中是非常常见的,因为大多数时候我们只想要去操作资源,只想知道操作之后报错与否,结果并不关心,那么就可以直接_省略函数返回的结果。


4. 第三种用法: 类型约定



_ schema.Source = &MySource{}
 _ schema.Source = (*MySource)(nil)

比如判断某个struct是否实现接口的方法


如上所述,schema.Source是一个接口,MySource是一个结构体,那么我们在使用结构体的时候,如果没有实现接口,程序会报错,不让你使用这个结构体,因此在面向接口编程中我们一定要提前去检查某个结构体是否实现了某个接口。


5. 第五种用法: func _()



func _() {
 var x [1]struct{}
 _ = x[Default-0]
}


函数这种不常见,我们称它为黑洞函数 一个黑洞函数可以被定义多次,并且不能以正常的方式调用。它们有时对测试解析器很有用。


6. 小结



上面四种_的使用,尤其2,3,4,大家要牢记并且在项目中大胆使用,大家可以看下优秀的源码都是毫无保留的在用了。

相关文章
|
运维 NoSQL 编译器
学习golang(8) 初探:方法
学习golang(8) 初探:方法
101 0
|
NoSQL 网络协议 Go
学习golang(7) 初探:函数(1)
学习golang(7) 初探:函数(1)
113 0
|
JSON 运维 监控
学习golang(7) 初探:函数(2)
学习golang(7) 初探:函数(2)
110 0
|
Java Linux Go
知识分享之Golang——Golang1.18泛型的简单案例
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
106 0
知识分享之Golang——Golang1.18泛型的简单案例
|
9月前
|
编译器 Go
浅谈Golang T和*T方法集的关系
浅谈Golang T和*T方法集的关系
55 0
|
大数据 编译器 Go
104.【GoLang基础】(三)
104.【GoLang基础】
96 0
|
存储 编译器 Go
104.【GoLang基础】(七)
104.【GoLang基础】
81 0
|
缓存 并行计算 Go
104.【GoLang基础】(四)
104.【GoLang基础】
77 0
|
Java Go 数据安全/隐私保护
104.【GoLang基础】(五)
104.【GoLang基础】
78 0

热门文章

最新文章