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

[]interface{} 的元素类型

[]interface{} 的元素类型

Go
qq_笑_17 2023-07-10 15:03:54
如何获取运行时元素类型[]interface{}?我尝试了以下测试。var data interface{}temp := make([]interface{}, 0)temp = append(temp, int64(1))data = tempelemType := reflect.TypeOf(data).Elem()switch elemType {case reflect.TypeOf(int64(1)):    logger.Infof("type: int64 ")default:    logger.Infof("default %v", elemType.Kind()) // "default" is matched in fact}
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

的元素类型[]interface{}是interface{}.


如果您想要该切片中各个值的动态类型,则需要对该切片进行索引以提取这些值。


data := make([]interface{}, 0)

data = append(data, int64(1))

data = append(data, "2")

data = append(data, false)


typeof0 := reflect.ValueOf(data).Index(0).Elem().Type()

typeof1 := reflect.ValueOf(data).Index(1).Elem().Type()

typeof2 := reflect.ValueOf(data).Index(2).Elem().Type()

https://play.golang.com/p/PVWhIdu1Duz


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信