当 Swift 结构是存储属性时,可以在堆上分配它吗?

The*_*ler 11 swift

结构体的一大优点是它们在堆栈上分配,这使它们非常快。

但是,类的实例及其属性是堆分配的。那么作为结构体的属性不会也分配在堆上吗?

Cri*_*tik 8

简短的回答,是的,声明为存储实例属性的结构在堆中分配,因为对象存储已经在堆中。

一般来说,Swift 值类型分配在它们引用发生的内存位置上:



[1]。足够大的结构在堆上分配,即使它们的声明位于堆栈中