我有一个函数可以接受所有类型的结构作为接口。如果我尝试打印s.Index(i)它给了我价值观。但是,一旦我将其附加到allRows []接口{}并打印出来。我得到的不是值,而是我传递函数的结构类型。例如。fmt.Println("AllRows",allRows)[<adminPanel.allBeaconInfo 值> <adminPanel.allBeaconInfo 值> <adminPanel.allBeaconInfo 值> <adminPanel.allBeaconInfo 值> <adminPanel.allBeaconInfo 值>]func pagination(c *gin.Context, st interface{}) { var allRows []interface{} switch reflect.TypeOf(st).Kind() { case reflect.Slice: s := reflect.ValueOf(st) for i := 0; i < s.Len(); i++ { allRows=append(allRows,s.Index(i)) fmt.Println(allRows) } } fmt.Println("AllRows",allRows)
1 回答

江户川乱折腾
TA贡献1851条经验 获得超5个赞
表达式s.Index(i)
计算为reflect.Value
包含实际切片元素的 a。调用Value.Interface()以获取实际的切片元素。
var allRows []interface{}
switch reflect.TypeOf(st).Kind() {
case reflect.Slice:
s := reflect.ValueOf(st)
for i := 0; i < s.Len(); i++ {
allRows=append(allRows,s.Index(i).Interface())
fmt.Println(allRows)
}
}
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消