スライス(src)のすべてのアイテムを新しいスライス(dst)にコピーした後、dstのすべてのアイテムをsrcの最後のアイテムを指します。ゴランレンジコピー後、すべてのアイテムがsrcスライスの最後のアイテムを指します
package main
import (
"fmt"
)
func main() {
src := []string{"a", "b", "c"}
dst := []*string{}
for _, val := range src {
dst = append(dst, &val)
}
for i, s := range dst {
fmt.Printf("%v - %v\n", i, *s)
}
}
>>> 0 - c
>>> 1 - c
>>> 2 - c
dstスライスに "a"と "b"がコピーされないのはなぜですか?
私は重複としてマークしませんが、以下を参照してください。https://golang.org/ doc/faq#closures_and_goroutines – JimB