Swift计算属性和存储属性

作者: Light413 | 来源:发表于2018-07-30 17:39 被阅读179次
swift的副本.png

代码片段示例

声明变量一

    var arr1:[Int] =  {
        return [1,2,3];
    }()

声明变量二

    var arr2:[Int] {
        return [1,2,3];
    }

声明变量三

    var arr3:[Int] {
        get {
            return [1,2,3];
        }
    }

声明变量四

    var arr4:[Int] {
        get {
            return [1];
        }
        
        set {
            print(newValue);
        }
    }

以上为声明属性的几个方式,其中:1和2 两种方式在一些第三方库代码中经常性出现。

解读

1、声明一个存储属性,通过闭包运算赋值。

2、3 作用相同,2是3 的简化形式。声明一个计算属性。只读。

4、声明一个计算属性,可读可写。

由此看出,存储属性可以直接读写赋值。计算属性不能直接对其操作,其本身只起计算作用,没有具体的值。

存储属性和计算属性比较

  • 1 .计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。
  • 2.存储属性可以是变量存储属性(用关键字 var 定义),也可以是常量存储属性(用关键字 let 定义)。计算属性只能(用关键字 var 定义)。
  • 3.计算属性不直接存储值,而是提供一个 getter 和一个可 选的 setter,来间接获取和设置其他属性或变量的值。
  • 4.可以为除了延迟存储属性之外的其他存储属性添加属性观察器,也可以通过重写属性的方式为继承的属性(包括 存储属性和计算属性)添加属性观察器。你不必为非重写的计算属性添加属性观察器,因为可以通过它的 setter 直接监控和响应值的变化。

由此可见Swift的属性和Object-c的属性区别还是挺大的,Object-c属性会有对应的setter 、 getter 方法、对应的实例变量而Swift的属性确没了这些功能。

一步一个脚印,Swift新手新司机开始上路了

相关文章

  • Swift:基础(二十)属性

    Swift 属性 Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性和计算...

  • OC的@property与Swift的存储属性/计算属性类比

    Swift中的计算属性/存储属性与OC中的@property   Swift中引入了存储属性、计算属性的概念,存储...

  • Swift进阶(三)--- 属性

    Swift的属性 在swift中,属性主要分为以下几种: 存储属性 计算属性 延迟存储属性 类型属性 一:存储属性...

  • 属性

    Swift 属性将值跟特定的类、结构或枚举关联。属性可分为存储属性和计算属性: 存储属性 计算属性存储常量或变量...

  • Swift 属性

    Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性 计算属性 存储常量或变...

  • Swift 属性

    Swift 属性 在Swift中属性主要分为存储属性、计算属性、延迟存储属性、类型属性这四种,并且Swift还提供...

  • Swift5中的存储属性和计算属性以及属性观察器

    Swift 属性将值跟特定的类、结构或枚举关联。 属性可分为存储属性和计算属性: 存储属性计算属性存储常量或变量作...

  • Swift 属性与下标

    swift中属性分为静态属性和存储属性,存储属性类似于OC中的数据成员,计算属性不存储数据 存储属性 存储属性适用...

  • 20170612基础知识-属性、下标、方法

    1、Swift中,属性分为存储属性、计算属性。 存储属性:存储数据,常量属性let,变量属性var,适用于类和结构...

  • Swift属性

    Swift属性分为存储属性,计算属性。或者分为实例属性,类属性。计算属性不存储值(像是一个计算方法),枚举没有存储...

网友评论

    本文标题:Swift计算属性和存储属性

    本文链接:https://www.haomeiwen.com/subject/nwofvftx.html