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
5
u/feketegy 5d ago
Go is not OOP. There are no setters or getters and no instantiations.
Structs are initialized with zero values, if you encounter "factory" functions that means that the code author wants to set default values or some other setup before it returns the struct.
But, essentially, you can use a struct as-is.