Swift 中 class 和 struct

struct能继承么? 为什么用struct不用class? 为什么struct比class安全?

值类型和引用类型

  • 值类型: 声明一个值类型变量,编译器会在栈中开辟空间,不需要手动管理内存

    例如 : int ,float ,double等类型都是基本数据类型。

  • 引用类型 :生另一个引用类型的变量,编译器会在堆中开辟空间,需要手动管理内存
    例如:继承自NSObject的对象都是引用类型。

struct 和 class

  • struct 不可以继承,class可以
  • class是引用类型,struct是值类型
  • struct是分配在栈中的,连续的空间,相对较快,class是分配在堆中
  • struct是线程安全的
  • struct是值类型,无需考虑引用计数,不用担心循环引用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容