为了账号安全,请及时绑定邮箱和手机立即绑定

reflect.Value.MapIndex()返回一个与reflect.ValueOf()不同的值

reflect.Value.MapIndex()返回一个与reflect.ValueOf()不同的值

Go
呼唤远方 2021-05-14 18:50:06
根据反映,文档reflect.Value.MapIndex()应返回reflect.Value,表示存储在地图特定键处的数据的值。因此,我的理解是以下两个表达式应该相同。在第一种情况下,我们从获得结果MapIndex()。在第二个中,我们从MapIndex()获取基础数据中获取结果,然后对其进行reflect.ValueOf()处理。reflect.ValueOf(map).MapIndex("Key")reflect.ValueOf(reflect.ValueOf(map).MapIndex("Key").Interface())为什么reflect.ValueOf()需要额外的费用?示例代码:package mainimport "fmt"import "reflect"func main() {    test := map[string]interface{}{"First": "firstValue"}    Pass(test)}func Pass(d interface{}) {    mydata := reflect.ValueOf(d).MapIndex(reflect.ValueOf("First"))    fmt.Printf("Value: %+v \n", mydata.Interface())    fmt.Printf("Kind: %+v \n", mydata.Kind())    fmt.Printf("Kind2: %+v \n", reflect.ValueOf(mydata.Interface()).Kind())}播放:http://play.golang.org/p/TG4SzrtTf0
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号