美文网首页
swift 的计算属性和存储属性

swift 的计算属性和存储属性

作者: coding_Liu | 来源:发表于2016-12-29 15:16 被阅读2474次

1、存储属性: 就是存储一个常量或变量

/// 存储型属性
    let aaa = "aaa"  /// 相当于供整个类使用
    /// 懒加载也属于存储型属性 ⚠️是属性oc中是方法
    lazy var ccc: [TestModel] = {
       
        let testModle = TestModel()
        var arr = [TestModel]()
        for _ in 0...99 {
            
            arr.append(testModle)
        }
        return arr
    }()
    
    var num: Int = 100```


2、计算属性: 不直接存储值,而是用get/set来做.可用来操作其他属性值的变化
get: 取, 用来封装取值的过程
set: 设, 用来封装设值的过程

/// 计算型属性(相当于重写set、get 方法的一些属性,在set、get方法中有相应的计算)
var ddd: Int{

    /// 想变成只读或者只写的属性,只需要单独留一种set或get方法即可
    
    get {
        return num + 11
    }
    
    set(d){
        
        num = num + d
    }
}

完整的测试代码:

//
// ViewController.swift
// 计算型属性和存储型属性
//
// Created by Admin on 16/12/29.
// Copyright © 2016年 刘普昌. All rights reserved.
//

import UIKit

/// 相当于全局(供所有类使用,可以一起放在全局的一个类中)

class ViewController: UIViewController {

/// 存储型属性
let aaa = "aaa"  /// 相当于供整个类使用
/// 懒加载也属于存储型属性 ⚠️是属性oc中是方法
lazy var ccc: [TestModel] = {
   
    let testModle = TestModel()
    var arr = [TestModel]()
    for _ in 0...99 {
        
        arr.append(testModle)
    }
    return arr
}()

var num: Int = 100

/// 计算型属性(相当于重写set、get 方法的一些属性,在set、get方法中有相应的计算)
var ddd: Int{
    
    /// 想变成只读或者只写的属性,只需要单独留一种set或get方法即可
    
    get {
        return num + 11
    }
    
    set(d){
        
        num = num + d
    }
}


override func viewDidLoad() {
    super.viewDidLoad()
    
    
    /// 存储型属性
    let bbb = "bbb"
    print(bbb)
    
    
    self.ddd = 5  // num = 100 + 5
    print(self.ddd) /// result :100 + 5 + 11 = 116 一点问题没有word 哥
    
    print(aaa)
    // Do any additional setup after loading the view, typically from a nib.
}

func test() -> () {
    print(aaa)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}


参考文章: http://blog.csdn.net/xn4545945/article/details/39311027

相关文章

  • Swift:基础(二十)属性

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

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

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

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

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

  • 属性

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

  • Swift 属性

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

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

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

  • Swift 属性与下标

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

  • Swift 属性

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

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

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

  • Swift属性底层探究

    Swift的属性分为存储属性(Stored Property)和计算属性(Computed Property),存...

网友评论

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

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