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 @   ~道一~  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示