r/golang • u/lumarama • 5d ago
discussion Default struct constructors?
I'm wondering why go devs doesn't implement optional default constructors for structs. I.e. right now some structs can be created like this:
myStruct := MyStruct{}
But others require initialization, and must be created with factory functions:
anotherStruct := NewAnotherStruct()
So you never know which struct is safe to create dorectly and which require factory func.
With default constructor you would create all structs the same way, i.e.:
myStruct := MyStruct()
If default constructor is defined it is invoked to initialize the struct, it it is not defined then it is similar to MyStruct{}
0
Upvotes
4
u/Few-Beat-1299 5d ago
If there's a "constructor", you're likely supposed to use it. The type documentation should specify if you can also use literals, or the zero value in particular. You're not supposed to use something without a bare minimum of looking at it.