iOS结构体和类的区别

1,语义:

类:引用类型(引用语义),需要自己管理其引用计数、引用值得变化
结构体: 值类型(值语义),在设计结构体时,我们可以要求编译器保证不可变性。

2,内存管理方式:

类:类的实例只能通过引用来间接地访问。类能有很多个持有者。
结构体:可以被直接持有及访问,不会被引用,但是会被复制。也就是说,结构体的持有者是唯一的。

3,共享代码:

类: 通过继承来共享代码
结构体 (以及枚举):不能被继承。想要在不同的结构体或者枚举之间共享代码,我们需要使用不同的技术,比如像是组合、泛型以及协议扩展等。

你可能感兴趣的:(iOS结构体和类的区别)