如何使用反射访问地图的 nil 键?

我有一个具有 nil-keyed 值的地图:


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


至尊宝的传说
浏览 174回答 2
2回答

倚天杖

这是reflect.Value为niltype 值创建 a 的一种方法interface{}:rkey := reflect.ValueOf(new(interface{})).Elem()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go