“_”(下划线),可以简单理解为赋值但以后不再使用,在golang中使用比较多,使用场合不单一,这里稍作总结,方便理解
用在import
import _ "net/http/pprof"
pprof常见用法
引入包,会先调用包中的初始化函数,这种使用方式仅让导入的包做初始化,而不使用包中其他功能
用在返回值
for _,v := range Slice{}
_,err := func()
表示忽略某个值。单函数有多个返回值,用来获取某个特定的值
用在变量
type T struct{}
var _ I = T{}
其中 I为interface
上面用来判断 type T是否实现了I,用作类型断言,如果T没有实现借口I,则编译错误.
用在函数定义中省略带名的参数
func demo() ( int, int, string, int ,error)
返回多个参数时,尤其是类型相同的,不利于阅读,
func demo() ( sumA int, sumB int, _ string, total int ,_ error)
返回参数 int 加了名字,对比上面,便于理解,但是 "string" 和 "error"没有名字,编译会报错,用下划线可以忽略命名