微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift计算属性


一、计算属性的概念


计算属性本身不存储数据,而是从其它存储属性中计算得到数据,与存储属性不同,类、结构体、和枚举都可以定义计算属性


计算属性提供了一个getter来获取值,以及一个可选的setter来间接设置其它属性或变量的值,计算属性的语法如下:


面向对象类型 类型名{

存储属性...

var 计算属性名:属性数据类型{

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 举报,一经查实,本站将立刻删除。

相关推荐