类是引用类型,结构体是值类型。
值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象的一个指向。引用类型是在堆上,而值类型是在栈上进行存储和操作。相比栈上的操作,对上的操作更加复杂耗时,所以苹果官方推荐使用结构体,这样可以提高App运行的效率。
class有这几个功能struct没有的:
- class可以继承,这样子类可以使用父类的特性和方法。
- 类型转换可以在runtime的时候检查和解释一个实例的类型。
- 可以用deinit来释放资源。
- 一个类可以被多次引用。
struct也有这样几个优势:
- 结构较小,适用于复制操作,相比于一个class的实例被多次引用更加安全。
- 无序担心内存泄漏或者多线程冲突问题。
网友评论