主页 > 知识库 > golang的空标识符理解

golang的空标识符理解

热门标签:地图标注的汽车标 南通如皋申请开通400电话 中国地图标注省会高清 江西转化率高的羿智云外呼系统 广州呼叫中心外呼系统 高德地图标注口诀 西部云谷一期地图标注 浙江高速公路地图标注 学海导航地图标注

空白符(blank identifier)

空白符的产生可能是因为go不允许变量声明了但不使用。既然不想使用,何必声明变量呢,那就将变量用空白符代替,反正空白符就是用来抛弃的。

我们有时候看到这样的golang代码:

import _ "net/http/pprof"

for _, c := range "11234" {
  log.Println(c)
}

var _ io.Reader = (* XXX)(nil)  //全局变量

var _ = Suite(HelloWorldTest{})

代码中_很独特的样子:说是变量吧,但它在同一作用域可以多次被定义;说是类型吧,写法上又不像。

那它到底是何方神圣呢?

其实官方文档有定义和介绍,它叫Black Identifier,中文翻译为空标识符。空标识符不是普通变量,而是语言提供的一种特殊处理,它能避免某个变量起名,同时也可以在赋值时舍弃某个值。

空标识符一般用于4种场合,正对应上面例子的4段代码。

1. 引入某包只执行包中的init函数,但本包没有直接引用该包任何变量或函数,使用import _避免编译错误;

2. 函数有多返回值,忽略其中某些返回值。类似c++11 std::ignore在std::tie中的运用;

3. 编译期检查,比如某类型有没有实现某接口的检查;

4. 想在main之前执行某段代码,当然用init也可以。

示例 blank_identifier.go

package main
import "fmt"
func main() {
  var i1 int
  var f1 float32
  i1, _, f1 = ThreeValues()
  fmt.Printf("The int: %d, the float: %f \n", i1, f1)
}
func ThreeValues() (int, int, float32) {
  return 5, 6, 7.5
}

输出结果:

The int: 5, the float: 7.500000

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:
  • go for range坑和闭包坑的分析
  • strings命令分析浅谈Go和C++编译时的一点小区别
  • go panic时如何让函数返回数据?
  • go代码实现买房贷款月供计算的方法
  • linux下搭建go环境的安装配置讲解
  • 为什么Go语言把类型声明放在后面?
  • 用go gin server来做文件上传服务
  • 使用go gin来操作cookie的讲解
  • 在go中使用omitempty的代码实例
  • go for range遍历二维数组的示例

标签:吐鲁番 保定 贵州 德宏 许昌 常州 曲靖 东营

巨人网络通讯声明:本文标题《golang的空标识符理解》,本文关键词  golang,的,空,标识符,理解,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《golang的空标识符理解》相关的同类信息!
  • 本页收集关于golang的空标识符理解的相关信息资讯供网民参考!
  • 推荐文章