关键词:Swift, iOS, 类, 结构体, class, struct
概述
类和结构体的区别
- 结构体是值类型,传值(类似深拷贝)
- 类是引用类型,传引用(类似浅拷贝)
类与结构体的相同点
- 定义属性用于存储值
- 定义方法用于提供功能
- 定义下标操作用于通过下标语法访问它们的值
- 定义构造器用于设置初始值
- 通过扩展以增加默认实现之外的功能
- 遵循协议以提供某种标准功能
类比结构体多的功能
- 继承允许一个类继承另一个类的特征
- 类型转换允许在运行时检查和解释一个类实例的类型
- 析构器允许一个类实例释放任何其所被分配的资源
- 引用计数允许对一个类的多次引用
示例
类和结构体的初始化
//可以设置属性的默认值
struct ImageStruct {
var width = 100
var height = 200
}
class FileClass {
var fileTppe = ImageStruct()
var name = "aa"
var size = 11
}
//使用构造器语法来创建新的实例。属性均会被初始化为默认值
let stru1 = ImageStruct()
let file1 = FileClass()
print("width:\(stru1.width) height:\(stru1.height)")
print("name:\(file1.name)")
// 结构体不需要实现 init(width:Int, height:Int) {} 这个构造器,直接使用即可完成对属性的赋值。
let stru3 = ImageStruct(width: 12, height: 34)
print("stru3 width:\(stru3.width) height:\(stru3.height)")
// 打印:stru3 width:12 height:34