【发布时间】:2016-12-06 04:31:38
【问题描述】:
我有这个简单的代码:
import "fmt"
type Foo struct {
val int
}
func main() {
var a = make([]*Foo, 1)
a[0] = &Foo{0}
var b = [3]Foo{Foo{1}, Foo{2}, Foo{3}}
for _, e := range b {
a = append(a, &e)
}
for _, e := range a {
fmt.Printf("%v ", *e)
}
}
我期待它打印{0} {1} {2} {3},但它打印{0} {3} {3} {3}。这里发生了什么?
【问题讨论】:
标签: arrays for-loop go append slice