
go 中 map 集合键值获取的特殊处理
在 go 语言中,对 map 集合的键值获取进行了特殊处理。当进行键值赋值时,可以仅获取键的值,而无需另外一个变量接收是否获取成功的布尔值。
例如:
type person struct {
name string
}
person := person{
name: "chang",
}
map1 := make(map[person]int)
map1[person] = 4
name := map1[person] // 可以这种特殊处理的机制称为 "index expression",其语法如下:
v, ok = a[x]
其中,v 是要获取的值,ok 是一个布尔值,表示键 x 是否存在于 map 中。
除了 map 集合,go 中还有一些其他类型也使用了类似的特殊处理,例如:
- type assertion:将一个 interface{} 转换为具体的类型时,可以省略强制转换后的值。
- receive expression:从 channel 接收值时,可以省略接收值的变量,仅获取是否成功接收的布尔值。










