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

将接口元素附加到接口 Golang

将接口元素附加到接口 Golang

Go
慕田峪9158850 2022-10-10 19:46:49
我有一个函数可以接受所有类型的结构作为接口。如果我尝试打印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)

            }

        }


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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