我有一个具有零键值的地图:
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
下面是创建一个单向reflect.Value的nil类型的值interface{}:
rkey := reflect.ValueOf(new(interface{})).Elem()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |