iOS Swift类与结构体

2021-12-27  本文已影响0人  TerryDev
抓到耗子就是好喵.jpeg

类与结构体相同点(🤷🏻)

两者区别

结构体是值类型(Value Type),类是引用类型(Reference Type)

上代码

struct RGB {
    var red   = 0.0
    var green = 0.0
    var blue  = 0.0
}

let color = RGB()
var newColor = color
newColor.red = 250.0
print("color rgb red value:\(color.red)")
print("newColor rgb red value:\(newColor.red)")
输出结果:

color rgb red value:0.0
newColor rgb red value:250.0

对于结构体而言,存储在color中的值被赋值给了新的实例newColor上,两个独立的实例包含相同的数值,由于是两个独立的实例,所以当newColor修改red 值的时候,不会对color造成影响。

对于类

class Person {
    var name:String?
    var age = 0
}

let person = Person()
person.name = "Terry"
person.age = 20

let anotherPerson = person
anotherPerson.age = 18
print("person age :\(person.age)")
print("anotherPerson age :\(anotherPerson.age)")
输出结果:
person age :18
anotherPerson age :18

Person类为引用类型,person的age和anotherPerson的age指向同一个对象,anotherPerson的age修改了,person的age也随之更改。

结构体的优点

类具有结构体不具备的功能

以上就是类和结构体的异同
参考 Swift官方文档

上一篇 下一篇

猜你喜欢

热点阅读