在golang中,似乎没有构造函数,但建议您使用函数分配结构类型的对象,通常以"New"+ TypeName命名,例如
func NewRect(x,y, width, height float) *Rect {
return &Rect(x,y,width, height)
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定Go的内存布局.在C/C++中,这种代码意味着您返回一个指向临时对象的指针,因为该变量是在堆栈上分配的,并且该函数在函数返回后可能是一些垃圾.在Golang,我是否必须担心这种事情?因为似乎没有标准显示将在堆栈上分配什么类型的数据与将在堆上分配什么类型的数据.
就像在Java中一样,似乎有一个特定的指出,基本类型如int,float将在堆栈上分配,从该对象派生的其他对象将在堆上分配.在golang,有没有具体谈论这个?