如何獲取運行時元素類型[]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
- 1 回答
- 0 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消