一、计算属性的概念
        
        计算属性本身不存储数据,而是从其它存储属性中计算得到数据,与存储属性不同,类、结构体、和枚举都可以定义计算属性
        计算属性提供了一个getter来获取值,以及一个可选的setter来间接设置其它属性或变量的值,计算属性的语法如下:
面向对象类型 类型名{
                存储属性...
var 计算属性名:属性数据类型{
get {
                        return 计算后属性值
}
set 新属性值{
                    
}
}
示例:
class Employee {
            var no:Int = 0
            var firstName:String = ""
            var lastName:String = ""
            var job:String?
            var salary:Double = 0
            lazy var dept:Department = Department()
            var fullname:String{
                get{
                return firstName+"."+"lastName"
}
                set(newFullName)系统默认给的变量名为newvalue{
                    var name = newFullName.componentsSeperatedByString(".")
                    firstName = name[0]
                    lastName = name[1]
}
}
}二、只读计算属性
            计算属性可以只有getter访问器,没有setter访问器,这就是只读计算属性
            示例:
class Employee {
            var no:Int = 0
            var firstName:String = ""
            var lastName:String = ""
            var job:String?
            var salary:Double = 0
            lazy var dept:Department = Department()
            var fullname:String{
                get{
                return firstName+"."+"lastName"
}
               
}
}三、结构体和枚举中的计算属性
        示例
struct Department {
            let no:Int = 0
            var name : String = "sales"
            
var fullName:String {
                return "swift" + name + ".D"
}
}
        var dept = Department()
        println(dept.fullName)
enum WeekDays:String {
                case Monday = "Mon"
                case Tuesday = "Tue"
                case Wednesday = "Wed"
                case Thursday = "Thu"
                case Friday = "Fri"
var message:String {
                    return "Today is"+self.rawValue
}
}
var day = WeekDays.Monday
println(day.message)
本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1621924
原文:http://linjohn.blog.51cto.com/1026193/1621924