I prefer the later when possible because it enables callers to use the zero value of a type without explicit initialisation.
On Sunday, 4 March 2018 11:37:43 UTC+11, Anmol Sethi wrote: > > How do you guys choose between constructors and lazy initialization? > > For example. > > Struct constructors: > > type meow struct { > x http.Handler > } > > func newMeow() *meow { > return &meow{ > x: http.NewServeMux(), > } > } > > func (m *meow) do() { > // stuff > } > > > Lazy initialization: > > type meow struct { > x http.Handler > } > > func (m *meow) do() { > if m.x == nil { > m.x = http.NewServeMux() > } > // stuff > } > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.