Swift 中结构体和类有很多共同点
。两者都可以:(属性、方法、下标、构造器、协议、扩展)
- 定义属性用于存储值
- 定义方法用于提供功能
- 定义下标操作用于通过下标语法访问它们的值
- 定义构造器用于设置初始值
- 通过扩展以增加默认实现之外的功能
- 遵循协议以提供某种标准功能
与结构体相比,类还有如下的附加功能
:(继承、类型转换、析构、引用类型)
- 继承允许一个类继承另一个类的特征
- 类型转换允许在运行时检查和解释一个类实例的类型
- 析构器允许一个类实例释放任何其所被分配的资源
- 引用计数允许对一个类的多次引用
作为一般准则,优先使用结构体,因为它们更容易理解,仅在适当或必要时才使用类。实际上,这意味着你的大多数自定义数据类型都会是结构体和枚举。
结构体
struct Point {
var x = 0
var y = 0
}
var a = Point.init(x: 5, y: 6)// 自动生成逐一属性构造器,let结构体实例不能修改内部属性的值
var b = a // 值类型引用,拷贝全新副本
b.x = 10086
print(a.x) // 5
// 结构体属于值类型。当值类型的实例被声明为常量的时候,它的所有属性也就成了常量。
恒等号 ===
用于判断两个引用类型的实例是否引用同一块内存
网友评论