struct与class异同
- 共同点
- 定义属性用于存储值
- 定义方法用于提供功能
- 定义下标操作使得可以通过下标语法来访问实例所包含的值
- 定义构造器用于生成初始化值
- 通过扩展以增加默认实现的功能
- 实现协议以提供某种标准功能
- 类更强大
- 继承允许一个类继承另一个类的特征
- 类型转换允许在运行时检查和解释一个类实例的类型
- 析构器允许一个类实例释放任何其所被分配的资源
- 引用计数允许对一个类的多次引用
- 两者的区别
struct是值类型,class是引用类型。struct有一个自动生成的成员逐一构造器,用于初始化新结构体实例中成员的属性;而class没有。struct中修改self或其属性的方法必须将该实例方法标注为mutating;而class并不需要。struct不可以继承,class可以继承。struct赋值是值拷贝,拷贝的是内容;class是引用拷贝,拷贝的是指针。struct是自动线程安全的;而class不是。struct存储在stack栈中,class存储在heap堆中,struct更快。