Go中空白标识符`_`

2024-05-09 16:55:10 浏览数 (1)

在 Go 语言中,下划线 _ 是一个特殊的标识符,被称为 "空白标识符" 或 "匿名变量"。它有几个常见的用途:

1. 引入包但不使用

在Go语言中,如果我们想导入一个包,但没有使用其中的任何函数、变量或类型,就会出现编译错误。但我们有需要使用这个包的init函数,这时,我们可以使用_来忽略这个包。示例代码如下:

代码语言:javascript复制
import _ "fmt"

在上面的代码中,_ "fmt"表示引入fmt包,但我们并不打算在代码中直接使用这个包的其他部分。

2. 占位符/忽略值

对于函数返回的结果,如果我们不关心其中的某些值,那就可以使用_来作为占位符。示例代码如下:

代码语言:javascript复制
_, err := io.Copy(dst, src)

在上面的代码中,我们不关心Copy函数返回的第一个值 (字节数),只关心第二个值 (error)。

3. For range 循环中忽略键或值

在使用range去遍历一个数组,切片,通道或者map,此时如果我们不需要关心元素的索引,那就可以使用_来忽略索引。示例代码如下:

代码语言:javascript复制
for _, value := range array {
    fmt.Println(value)
}

在上述代码中,我们只关心值,而不关心索引,所以使用了_来忽略索引。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[1]进行许可,使用时请注明出处。 Author: mengbin[2] blog: mengbin[3] Github: mengbin92[4] cnblogs: 恋水无意[5] 腾讯云开发者社区:孟斯特[6]

References

[1] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/ [6] 孟斯特: https://cloud.tencent.com/developer/user/6649301

0 人点赞