Swift 中 class 和 struct

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

值类型和引用类型

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

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

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

struct 和 class

  • struct 不可以继承,class可以
  • class是引用类型,struct是值类型
  • struct是分配在栈中的,连续的空间,相对较快,class是分配在堆中
  • struct是线程安全的
  • struct是值类型,无需考虑引用计数,不用担心循环引用

你可能感兴趣的:(Swift 中 class 和 struct)