swift-class与struct区别
比较项 | struct | class |
---|---|---|
类型 | 值类型 | 引用类型 |
属性初始化 | 可用默认构造直接初始化 | 需要自己创建构造方法 |
变量赋值 | 深拷贝 | 浅拷贝,增加原对象引用 |
方法中修改属性 | 需要添加mutating | 不需要 |
继承关系 | 不能继承 | 可以继承 |
内存 | 栈上,自动内存管理 | 堆上,手动内存管理 |
速度 | 高效 | 相比效率低 |
线程安全 | 自动线程安全的 | 大多是非线程安全的 |
与oc混编 | 不支持,oc无法调struct | 支持混编 |
序列化 | 不支持,可用字节转NSData | 支持序列化 |