Golang reflect.AppendSlice()函数及示例
reflect.Valuereflect.Value
reflect.AppendSlicereflect.AppendSlice
func AppendSlice(slice, to reflect.Value) reflect.Value
AppendSlicesliceto
AppendSlice

示例1

slice1slice2AppendSliceslice1slice2
package main

import (
    "fmt"
    "reflect"
)

func main() {
    slice1 := []int{1, 2, 3, 4}
    slice2 := []int{5, 6, 7, 8}

    v1 := reflect.ValueOf(slice1)
    v2 := reflect.ValueOf(slice2)

    v3 := reflect.AppendSlice(v2, v1)

    fmt.Println(v3.Interface())
}

输出结果如下:

[5 6 7 8 1 2 3 4]
reflect.ValueOfslice1slice2reflect.Valuereflect.AppendSliceslice2slice1

示例2

AppendSlice
package main

import (
    "fmt"
    "reflect"
)

func main() {
    var emptySlice []int
    slice1 := []int{1, 2, 3, 4}

    v1 := reflect.ValueOf(slice1)
    v2 := reflect.ValueOf(emptySlice)

    v3 := reflect.AppendSlice(v2, v1)

    fmt.Println(v3.Interface())
}

输出结果如下:

[1 2 3 4]
emptySlicereflect.Valueslice1reflect.Valuereflect.AppendSliceslice1emptySlice