I have read some of the stack overflow question related to "why pointer and why not pointer", but I could not understand much.
So, want to understand based on my example below
I have a list of users and I am finding a hard time to understand which approach is better and faster for the purpose of nesting array struct of users inside another struct.
For an example -
type loc struct {
Type string
Point []float64
}
type User struct {
ID string
Name string
Location loc
... // 30 more fields
}
Case A - Using pointer for nested array struct
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",
},
},
}
Case B - Should I use above approach or below approach to
type Games struct {
ID string
Owner []User
Player []User
}
// storing it as
G := Games {
ID: "1",
Owner: []User{
{
ID: "2",
Name: "User A",
},
},
}
Considering the situation, I do not have to change data for Owner
or Player
after creating value for Games
above and Player
can sometimes remain Nil, should I use only User
or it's better to use *User
I have following confusion based on above 2 cases
- Performance - which one is better & why?
- Garbage Collection - which one is better & why?
- Any Memory effects?
- Any other effects!