Swift - 属性

属性的意义:将值和对象、结构体关联上

储存属性

将常量、变量存储为实例对象的一部分

struct Person {
    var name: String = ""   // 存储属性(变量)
    let age = 10           // 存储属性(常量)
}

计算属性

本质上是方法,主要来用调用、计算存储属性

struct Person {    
    var info: String {      // 计算属性
        get {
            self.name + "年龄" + String(self.age)
        }
        
        set {
            if newValue == "未成年" {
                self.age = 15
            }else {
                self.age = 20
            }
        }
    }
}

计算属性的set方法中,可以获取即将赋值的值newValue

 属性观察器

存储属性的赋值操作可以进行监听,有点类似于OC的set方法

willSet:监听赋值之前,新值可以通过newValue获取

didSet:监听赋值之后,旧值可以通过oldValue获取

struct Person {
    var age = 10 {         // 存储属性
        willSet {
            print("还没开始赋值,即将赋值中... age:", age, "newValue:", newValue)
        }
        
        didSet {
            print("已经赋值过了...age:", age, "oldValue", oldValue)
        }
    }
}
posted @ 2022-08-23 16:12  ~道一~  阅读(20)  评论(0编辑  收藏  举报