如何使用反射访问地图的零密钥?

Gim*_*ima 3 go

我有一个具有零键值的地图:

mapp := map[interface{}]interface{}{
    nil: "a",
}
Run Code Online (Sandbox Code Playgroud)

访问它的nil密钥直接工作:

fmt.Println("key[nil]:", mapp[nil])
Run Code Online (Sandbox Code Playgroud)

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

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

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

Cer*_*món 5

下面是创建一个单向reflect.Value的nil类型的值interface{}:

rkey := reflect.ValueOf(new(interface{})).Elem()
Run Code Online (Sandbox Code Playgroud)

操场的例子