type Foobar struct {
}
切片元素是值
var s []Foobar
Or:
切片元素是指针
var s []*Foobar
不考虑性能,仅考考代码优雅性。
前一种切片(元素为值)在循环赋值时有不便之处:
for _, i := range s {
i.xxx = yyy
}
上面的代码实际上是无效的,必须使用索引,于是代码很不优雅:
for i, _ := range s {
s[i].xxx = yyy
}
但后一种切片(元素为指针),在很多使用场景下同样不方便