Swift 计算属性和存储属性

2019-07-23  本文已影响0人  kimedison

作用范围:计算属性可以用于 类、结构体、枚举中,存储属性仅可以用于 类、结构体 中,换言之:存储属性不能被用于枚举中

声明:计算属性仅可以用 var 关键字声明,存储属性可以用 letvar 声明

举例:

class cls {
    
    var a = 1
    var b = {
        return "hi"
    }()
}

a 是直接赋值的计算属性
b 是通过调用闭包获取返回值赋值的

class cls2 {
    
    let m = 10
    
    var c_store = 0;
    
    var a: Int {
        return self.m + 1
    }
    
    var b: Int {
        
        get {
            return self.m + 2
        }
        
    }
    
    var c: Int {
        
        get {
            
            return self.c_store + 1
        }
        
        set(num) {
            self.c_store += num
        }
    }
}

其中 a, b, c 都是计算属性

a 和 b 都是只有一个 getter, 其中 a 省略了 get{}
c 则是包括 gettersetter

上一篇下一篇

猜你喜欢

热点阅读