Is there a reason why I should create a struct using &StructName{}
instead of Struct{}
? I see many examples using the former syntax, even in the Effective Go Page but I really can not understand why.
Additional Notes: I'm not sure whether I explained my problem well with these two approaches so let me refine my question.
I know that by using the &
I will recieve a pointer instead of a value however I would like to know why would I use the &StructName{}
instead of the StructName{}
. For example, is there any benefits of using:
func NewJob(command string, logger *log.Logger) *Job {
return &Job{command, logger}
}
instead of:
func NewJob(command string, logger *log.Logger) Job {
return Job{command, logger}
}