0
出于某种原因,使用反射向切片添加新元素似乎不会更新切片本身。这是代码来演示:使用反射追加到lang切片
package main
import (
"fmt"
"reflect"
)
func appendToSlice(arrPtr interface{}) {
valuePtr := reflect.ValueOf(arrPtr)
value := valuePtr.Elem()
value = reflect.Append(value, reflect.ValueOf(55))
fmt.Println(value.Len()) // prints 1
}
func main() {
arr := []int{}
appendToSlice(&arr)
fmt.Println(len(arr)) // prints 0
}
游乐场链接:https://play.golang.org/p/j3532H_mUL
有我丢失的东西吗?