首页 > 代码库 > Swift::2::计算属性

Swift::2::计算属性

计算属性(Computed Properties)

属性

属性一般用于类(class),结构体(struct),枚举(emun)作为存储数据,swift 的属性也像OC一样,拥有 getters 和 setters方法。

而所谓的计算属性,和一般的属性的区别,仅仅是它不存储数据,而是使用已有的属性(有存储作用的属性),进行运算,而后通过getter 和 setter 反馈结果。

下面是一个例子,例子中自定义一个时间类,类中,seconds 是唯一的存储属性,而miniutes,hours,days则是计算属性,通过和seconds做运算,反馈结果。

class Time
{
    var seconds:Double = 0

    init(seconds: Double){
         self.seconds = seconds
    }

    var minutes:Double{
        get{
            return (seconds / 60)
        }
        set{
            self.seconds = (newValue * 60)
        }
    }

    var hours:Double{
        get{
            return (seconds / (60 * 60))
        }
        set{
            self.seconds = (newValue * (60 * 60))
        }
    }

    var days:Double{
        get{
            return (seconds / (60 * 60 * 24))
        }
        set{
            self.seconds = (newValue * (60 * 60 * 24))
        }
    }
}

例子来源:http://www.codingexplorer.com/computed-properties-in-swift/

Swift::2::计算属性