В golang, кажется, нет конструкторов, но предлагается выделить объект типа struct с помощью функции, обычно называемой "New" + TypeName, например
func NewRect(x,y, width, height float) *Rect {
return &Rect(x,y,width, height)
}
Однако я не уверен в макете памяти Go. В C/С++ этот тип кода означает, что вы возвращаете указатель, который указывает на временный объект, потому что переменная выделяется в стеке, а переменная может быть некоторая корзина после возврата функции. В Голанге мне приходится беспокоиться об этом? Потому что кажется, что нет стандартного представления о том, какие данные будут распределены в стеке против того, какие данные будут выделены в куче.
Как и в Java, существует определенная точка зрения, что базовый тип, такой как int, float, будет выделен в стеке, другой объект, выделенный из объекта, будет выделен в куче. В golang, есть конкретный разговор об этом?