<分区>
我看过一些与“为什么是指针,为什么不是指针”相关的堆栈溢出问题,但我看不懂。
所以,想根据我下面的例子来理解
我有一个用户列表,我发现很难理解哪种方法更好更快,以便将用户的数组结构嵌套在另一个结构中。
举个例子——
type loc struct {
Type string
Point []float64
}
type User struct {
ID string
Name string
Location loc
... // 30 more fields
}
案例 A - 对嵌套数组结构使用指针
type Games struct {
ID string
Owner []*User
Player []*User
}
// and storing it as
G:= Games{
ID: "1",
Owner: []*User{
&User {
ID: "2",
Name: "User A",
},
},
}
案例 B - 我应该使用上面的方法还是下面的方法
type Games struct {
ID string
Owner []User
Player []User
}
// storing it as
G := Games {
ID: "1",
Owner: []User{
{
ID: "2",
Name: "User A",
},
},
}
考虑到这种情况,在为上面的 Games
和 Player
有时可以保持为 Nil,我应该只使用 User
还是最好使用 *User
基于以上两种情况,我有以下困惑
- 性能 - 哪个更好,为什么?
- 垃圾收集 - 哪个更好,为什么?
- 有内存效应吗?
- 任何其他影响!