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

Swift 中的存储属性和计算属性

作者: EngineerPan | 来源:发表于2021-09-18 15:34 被阅读0次
    /// 类中如果有非可选属性,需要进行处理;要么声明的时候就直接初始化,要么提供初始化方法来初始化声明的非可选变量
    class Animal: NSObject {
        /// 存储属性:值的获取和存储通过自身完成,不依赖其他的变量
        // 名字
        var name: String, // 提供初始化方法进行初始化
            age: Int = 0 // 声明的时候直接初始化
            
        // 可选属性没有初始化默认值是 nil
        var address: String?,
            postCode: Int?
        
        /// 计算属性(读、写):不通过变量自己本身进行值的获取和存储,值的获取和存储依赖其他变量,计算属性需要声明类型,同时,计算属性不能使用 let 关键字
        var virtualAge: Int {
            get {
                return age
            }
            // 可以声明一个变量,也可以不声明变量,使用 `newValue` 代替
            // set (myValue) {
            //    age = myValue * 4
            //}
            set {
                  age = newValue * 4
            }
        }
        
        /// 计算属性(只读),计算属性需要声明类型
        var actualAge: Int {
            get {
                return age * 8
            }
        }
        
        /// 计算属性(只读),计算属性需要声明类型
        /// 省略 get
        var virtual: Int {
            return age * 8
        }
        
        /// 计算属性(只读),计算属性需要声明类型
        /// 省略 return
        var actual: Int {
            age * 8
        }
        
        // 初始化方法
        init(_ nameStr: String) {
            self.name = nameStr
        }
    }
    

    计算属性跟存储属性的区别:

    1. 计算属性值的获取跟存储不是由自身完成的,需要其他的存储属性。即计算属性本身是不能存储属性的;
    2. 存储属性值的存储通过自身就可以完成;

    相关文章

      网友评论

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

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