Class和Struct比较

  • 从类型上看,在Swift中,Class是引用类型,Struct是值类型。值类型在传递和赋值的时候进行深复制,而引用类型只会产生一个指向对象的指针。
  • 从内存区域上看,Class是在堆上进行存储和操作的,而Struct是在栈上进行存储和操作。相比于栈上的操作,堆上的操作更加复杂耗时。所以在Swift中,苹果官方推荐使用结构体,这样可以提高App允许的效率。
  • Class的优点是可以继承(继承和多态),这样子类可以使用父类的属性和方法。可以用deinit来释放资源,可以被多次引用。
  • Struct的优势是结构较小,适合赋值操作。相对于一个Class的实例被多次引用更加安全。无需担心内存循环引用问题线程冲突问题。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。