计算属性概念:
计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值。计算属性的语法格式如下:
面向对象类型类型名{ 存储属性 ...... var计算属性名:属性数据类型{ get{ return计算后属性值 } set(新属性值){ ...... } } }
定义计算属性比较麻烦,要注意后面的几个大括号的对齐关系。
我们先看一个示例:
importFoundation classEmployee{ varno:Int=0 varfirstName:String="Tony"//存储属性 varlastName:String="Guan"//存储属性 varjob:String? varsalary:Double=0 lazyvardept:Department=Department() varfullName:String{//计算属性 get{ returnfirstName+"."+lastName//返回拼接的结果 } set(newFullName){//存储传递进来的参数值 varname=newFullName.componentsSeparatedByString(".") firstName=name[0] lastName=name[1] } } } structDepartment{ letno:Int=0 varname:String="" } varemp=Employee() print(emp.fullName)//取出属性值 emp.fullName="Tom.Guan"//给属性赋值 print(emp.fullName)
只读计算属性:
计算属性可以只有getter访问器,没有setter访问器,这就是只读计算属性。指定计算属性不仅不用写setter访问器,而且get{}代码也可以省略。与上一节相比,代码将大大减少。修改上一节示例为只读计算属性,代码如下:
classEmployee{ varno:Int=0 varfirstName:String="Tony" varlastName:String="Guan" varjob:String? varsalary:Double=0 lazyvardept:Department=Department() varfullName:String{//简洁的setter访问器 returnfirstName+"."+lastName } } structDepartment{ letno:Int=0 varname:String="" } varemp=Employee() print(emp.fullName)
emp.fullName="Tom.Guan"
欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com智捷课堂论坛网站:http://51work6.com/forum.php