gpt4 book ai didi

go - 如何使用反射访问 map 的 nil 键?

转载 作者:IT王子 更新时间:2023-10-29 00:54:15 26 4
gpt4 key购买 nike

我有一个具有 nil-keyed 值的 map :

mapp := map[interface{}]interface{}{
nil: "a",
}

直接访问它的 nil 键是有效的:

fmt.Println("key[nil]:", mapp[nil])

但是使用反射却不行 - 如何做到这一点?

rmapp := reflect.ValueOf(mapp)
rkey := reflect.ValueOf(interface{}(nil))
rval := rmapp.MapIndex(rmapp.MapIndex(rkey))
fmt.Println("key[nil]:", rval)

这里的非工作代码:
https://play.golang.org/p/6TKN_tDNgV

最佳答案

这是为 interface{} 类型的 nil 值创建 reflect.Value 的一种方法:

rkey := reflect.ValueOf(new(interface{})).Elem()

playground example

关于go - 如何使用反射访问 map 的 nil 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27821827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com