题目:Swift中 Struct 和 Class的区别是什么? 你分别在什么时候使用?
一些表面回答如下,仅供参考:
Struct是不能继承的 而Class是能继承的,所以当我们需要继承父类的属性 方法等 需要使用Class。
Class是引用类型,Struct是值类型,当我们赋值给一个变量的时候Class是浅拷贝 只拷贝了引用,Struct是深拷贝 拷贝了一个新的实例。
可变性 Class实例是可变的 Struct实例是不可变的,当我们改变其内部属性时, Class可以改变,Struct不能改变
内存管理上Class在堆上 是通过ARC进行管理,Struct在栈上 赋值到一个变量上时 会和变量的生命周期相同。
初始化上 class有一个默认的初始化函数,它会自动初始化类中所有的属性。而对于struct来说,则需要手动实现初始化函数。此外,class还可以使用deinit函数来进行清理工作,而struct则没有deinit函数。
OC和swift混编时候 OC无法调用swift的 struct 因为都要继承NSObject
参考:https://docs.pingcode.com/ask/28239.html