一、计算属性的概念
计算属性本身不存储数据,而是从其它存储属性中计算得到数据,与存储属性不同,类、结构体、和枚举都可以定义计算属性
计算属性提供了一个getter来获取值,以及一个可选的setter来间接设置其它属性或变量的值,计算属性的语法如下:
面向对象类型 类型名{
存储属性...
get {
return 计算后属性值
}
set 新属性值{
}
}
示例:
classEmployee{ varno:Int=0 varfirstName:String="" varlastName:String="" varjob:String? varsalary:Double=0 lazyvardept:Department=Department() varfullname:String{ get{ returnfirstName+"."+"lastName" } set(newFullName)系统默认给的变量名为newvalue{ varname=newFullName.componentsSeperatedByString(".") firstName=name[0] lastName=name[1] } } }
二、只读计算属性
计算属性可以只有getter访问器,没有setter访问器,这就是只读计算属性
示例:
classEmployee{ varno:Int=0 varfirstName:String="" varlastName:String="" varjob:String? varsalary:Double=0 lazyvardept:Department=Department() varfullname:String{ get{ returnfirstName+"."+"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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。