リフレクションのみを使用してスライスに追加したいと思います。しかし、私はa
の値を新しいスライスに "置き換える"方法を理解することはできません。リフレクションを使用してスライスに追加する
func main() {
fmt.Println("Hello, playground")
a := []string {"a","b","c"}
values := []string {"d","e"}
v := reflect.ValueOf(a)
fmt.Printf("%t\n\n", v.Type())
fmt.Printf("%t\n\n", v.Type().Elem().Kind())
for _, val := range values {
v.Set(reflect.Append(v, reflect.ValueOf(val)))
}
fmt.Printf("%t - %v", a, a)
}
このコードは、https://play.golang.org/p/cDlyH3jBDSで手を加えて利用できます。
それは正しいだろうが私が 'reflect.ValueOf'に参照を渡さなかったので、' reflect。* 'を使って実行したすべての操作がコピーに適用され、したがって元の 'a'を変更する方法はありませんでしたか? – cimnine
@cimnineはい、そうです。編集済みの回答を参照してください。 – icza