go map取key
时间: 2023-02-11 07:31:03 浏览: 303
可以使用内置函数`map[key]`来获取map中key对应的value。
示例:
```
package main
import "fmt"
func main() {
myMap := map[string]int{
"apple": 1,
"banana": 2,
"orange": 3,
}
fmt.Println(myMap["apple"]) // 输出: 1
fmt.Println(myMap["banana"]) // 输出: 2
fmt.Println(myMap["orange"]) // 输出: 3
}
```
也可以使用第二个返回值来判断key是否存在:
```
package main
import "fmt"
func main() {
myMap := map[string]int{
"apple": 1,
"banana": 2,
"orange": 3,
}
value, ok := myMap["apple"]
fmt.Println(value, ok) // 输出: 1 true
value, ok = myMap["grape"]
fmt.Println(value, ok) // 输出: 0 false
}
```
如果key不存在,第二个返回值为false, value为该类型的零值
相关问题
go语言判断map key是否存在
在Go语言中,可以使用以下方法判断map中的某个key是否存在:
```go
_, ok := map[key]
```
其中,`_`是空白标识符,用于忽略map[key]的返回值。如果key存在,则`ok`的值为`true`,否则为`false`。示例代码如下:
```go
m := map[string]int{"a": 1, "b": 2, "c": 3}
if _, ok := m["a"]; ok {
fmt.Println("key a exists")
}
if _, ok := m["d"]; !ok {
fmt.Println("key d does not exist")
}
```
输出结果为:
```
key a exists
key d does not exist
```
golang 利用反射获取map的key
使用反射获取map的key需要先通过反射获取到map类型的Value。然后通过调用Value的MapKeys()方法,可以获取到map中所有的key。示例代码如下:
```
package main
import (
"fmt"
"reflect"
)
func main() {
m := map[string]int{
"apple": 1,
"banana": 2,
"orange": 3,
}
// 获取map类型的Value
v := reflect.ValueOf(m)
// 遍历map中的所有key
keys := v.MapKeys()
for _, key := range keys {
fmt.Println(key.Interface())
}
}
```
输出结果为:
```
apple
banana
orange
```