猿问

连接作为接口传递的指针中的切片

我正在为特定API的客户端工作,并且我构建了几种结构(每条路由一个)。

该API可与页面一起使用,因此我可以让吸气剂返回结构的切片。这是通过一个通用函数完成的,该函数采用一个接口,该接口应该是指向所需结构切片的指针,因此我可以Unmarshal在json包中使用它。


我面临的问题是我想在一个请求中获得所有页面,但是要做到这一点,我需要将几个切片连接起来。


我尝试使用此方法来执行此操作,reflect但我只能设法创建一个新切片,而无需实际更改接口指向的值。


这是我的代码的一部分:


func concatenateSlice(dst, src interface{})(){

    dstValue := reflect.ValueOf(dst)

    srcValue := reflect.ValueOf(src)

    if srcValue.Type() != dstValue.Type(){

        return

    }

    switch srcValue.Kind(){

    case reflect.Ptr, reflect.Slice:

        dstValuePoint := reflect.Indirect(dstValue)

        srcValuePoint := reflect.Indirect(srcValue)

        reflect.Copy(dstValuePoint, reflect.AppendSlice(dstValuePoint, srcValuePoint))

    }

}

我为草率的帖子感到抱歉,这是我第一次使用stackoverflow。


暮色呼如
浏览 246回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答