Thanks. Okay. I guess the answer to my specific question is that you need the embedded struct name twice: shapebase: shapebase{....
I’d call that a Factory not a Ctor but whatever.
I guess Go does not have true constructors. Not sure I “get” that. How would one design a complex struct and make sure that every instance had “internal integrity” or internal consistency or all required fields filled in before usage? Ditto for Dtors: does automatic garbage collection totally obviate the need for a struct to have a rigorous means to clean up after itself?
Obviously Go was designed by people a lot more knowledgeable than myself but I am not sure I like the divorcing of data and methods. Seems to me to be a step backwards in OOP. Isn’t encapsulation important? Or does Go intend that to be handled at the package level, not the struct level?