Go语言匿名变量 图片看不了?点击切换HTTP 返回上层
在编码过程中,可能会遇到没有名称的变量、类型或方法。虽然这不是必须的,但有时候这样做可以极大地增强代码的灵活性,这些变量被统称为匿名变量。
匿名变量的特点是一个下画线“_”,“_”本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个这个标识符作为变量对其它变量的进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。例如:
代码说明如下:
匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。
提示:在 Lua 等编程语言里,匿名变量也被叫做哑元变量。
匿名变量的特点是一个下画线“_”,“_”本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个这个标识符作为变量对其它变量的进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。例如:
func GetData() (int, int) { return 100, 200 } a, _ := GetData() _, b := GetData() fmt.Println(a, b)代码运行结果:
100 200
GetData() 是一个函数,拥有两个整型返回值。每次调用将会返回 100 和 200 两个数值。代码说明如下:
- 第 5 行只需要获取第一个返回值,所以将第二个返回值的变量设为下画线。
- 第 6 行将第一个返回值的变量设为匿名。
匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。
提示:在 Lua 等编程语言里,匿名变量也被叫做哑元变量。