1.计算属性本身不存储数据,而是从其它存储属性中计算得到数据。与存储属性不同,类,结构体和枚举都可以定义计算属性。
计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其它属性或变量的值。计算属性的语法格式如下:
面向对象类型 类型名
{
存储属性
var 计算属性名:属性数据类型{
get{ return 计算后属性值 }
set(新属性值){}
}
}
class Employee
{
var firstName:String = ""
var lastName:String = ""
var fullName : String
{
get
{
return firstName +"."+lastName
}
set(newFullName)
{
var name = newFullName.componentsSeparatedByString(".")
firstName = name[0]
lastName = name[1]
}
}
}
只读属性
var fullName:String
{
return firstName + "." +lastName
}
属性观察者 可观察类和结构体,但不包括枚举,因为枚举不支持存储属性
面向对象类型 实例存储属性 静态存储属性 实例计算属性 静态计算属性
类 支持 不支持 支持 支持
结构体 支持 支持 支持 支持
枚举 不支持 支持 支持 支持
在静态计算属性中不能访问实例属性,但可以访问其它静态属性。在实例计算属性中能访问实例属性,也能访问静态属性。