Swift 与 OC 差异
1. 在Swift中class和struct的共同点和区别?
Class 和 Struct 是 Swift 中两种基本的数据类型,它们之间有一些共同点和区别。
共同点:
- 都可以定义属性 (properties) 和方法 (methods)。
- 都可以遵循协议 (protocols)。
- 都可以使用类型转换 (type casting)。
- 都可以使用扩展 (extensions) 添加新的功能。 区别:
- 不同的创建方式: 结构体是由 struct 关键字创建,类是由 class 关键字创建。
- 值类型和引用类型: 结构体是值类型,类是引用类型。结构体在进行赋值和传递时会进行值拷贝,类会进行引用传递。
- 继承: 类支持继承,结构体不支持。
- deinit: 类有 deinit 方法可以进行清理操作,结构体没有
- 通过mutating关键字来修改结构体中的属性,而类可以直接修改。
- 根据使用场景来决定是使用类还是结构体,如果需要继承或者在赋值或传递时需要进行引用传递,则使用类;如果需要一个简单的数据类型并且需要在赋值或传递时进行值拷贝,则使用结构体。需要注意的是,结构体和类都是可以使用协议和扩展,协议继承以及类型转换来扩展功能的,而不仅仅限于类.
选择结构体还是类取决于你的项目需求和预期行为。如果不需要继承或者在赋值和传递时需要进行值拷贝,则选择结构体;如果需要继承或者在赋值和传递时需要进行引用传递,则选择类。