swift属性

1.存储属性和计算属性

  • 存储属性就是Java里的普通属性,而计算属性就是指带了getter(或setter)的属性,而getter或setter里会带有一些逻辑,可以去处理存储属性或者其他一些操作,而不是像Java中只是简单的赋值(setter)或者返回传入的值(getter)
  • 计算属性如果只有getter的话,可以省略get关键字,直接在{}里return要返回的东西,也就是所谓的只读计算属性
var volume: Double {
        return width * height * depth
    }

2.属性观察器

  • 首先一点,之前一直很迷惑的是既然有setter,那为什么还要有属性观察器这种东西,在setter里去处理不就完了,这次再看了一遍swift指南,发现里面就是这么说的

可以为除了延迟存储属性之外的其他存储属性添加属性观察器,也可以通过重写属性的方式为继承的属性(包括存储属性和计算属性)添加属性观察器。你不必为非重写的计算属性添加属性观察器,因为可以通过它的 setter 直接监控和响应值的变化。 属性重写请参考重写。

  • 想了一下,willSet(newValue)didSet(oldValue)可以这样用,比如说在设置前检查一下newValue是否有效,然后在设置完之后可以把oldValue存储起来(比如某个数组)供后续使用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 属性将值跟特定的类、结构或枚举关联。存储属性存储常量或变量作为实例的一部分,而计算属性计算(不是存储)一个值。计算...
    穷人家的孩纸阅读 419评论 0 0
  • swift中属性有多种功能 存储功能:存储实例的常量和变量 计算功能:通过某种方式计算出来的属性 类属性: 与整个...
    清风沐沐阅读 561评论 0 0
  • 什么是属性? 属性将值跟特定的类、结构体或枚举关联。存储属性存储常量或变量为实例的一部分,而计算属性计算(不是存储...
    GY1994阅读 356评论 0 2
  • 存储属性计算属性属性观察器类型属性 存储属性 存储常量或变量作为实例的一部分,用于类和结构体。 栗子 等下!😲 先...
    HunterDude阅读 526评论 0 4