- 从类型上看,在Swift中,Class是引用类型,Struct是值类型。值类型在传递和赋值的时候进行深复制,而引用类型只会产生一个指向对象的指针。
- 从内存区域上看,Class是在堆上进行存储和操作的,而Struct是在栈上进行存储和操作。相比于栈上的操作,堆上的操作更加复杂耗时。所以在Swift中,苹果官方推荐使用结构体,这样可以提高App允许的效率。
- Class的优点是可以继承(继承和多态),这样子类可以使用父类的属性和方法。可以用deinit来释放资源,可以被多次引用。
- Struct的优势是结构较小,适合赋值操作。相对于一个Class的实例被多次引用更加安全。无需担心内存循环引用问题线程冲突问题。
网友评论