While it’s an interesting exercise to bring more OOP style to Go, I’m not sure it’s necessary. It’s fairly standard within Go to just do
myVar := &SomeStruct{}
Or
myVar := make(SomeStruct{})
Alternatively if you want to initialize a struct with default values, simply creating a New() function would satisfy this.
func NewStruct() *MyStruct {
return &MyStruct{Key: val}
}