swift之存储属性和计算属性
2020-10-14 本文已影响0人
无极战思
swift中的属性分为两类:存储属性和计算属性
1.存储属性(包含实例存储属性和类型存储属性):把常量或变量的值作为实例的一部分,可以直接读写赋值。变量可用var或者let关键字定义,用var定义的属性为变量存储属性,用let定义的属性为常量存储属性
2.计算属性:不直接存储值,本身只起计算作用,没有具体的值,提供一个getter来获取值,类似于方法的功能
class Pet
{
var age = 12
var name = "小花"
var kind = "法斗"
//定义计算属性的getter方法,该方法的返回值由age、name、kind三个存储属性决定
var petInfo:String{
get {
return "this is a pet which name is \(name),age is \(age), kind is \(kind)"
}
set (newInfo)
{
}
}
}
//创建一个实例
let pet = Pet.init()
print(pet.petInfo)//调用get方法
//this is a pet which name is 小花,age is 12, kind is 法斗
pet.petInfo = "this is a pet which name is laoqi,age is 2, kind is taidi"//调用set方法
print(pet.petInfo)
//this is a pet which name is laoqi,age is 2, kind is taidi
存储属性和计算属性比较:
- 计算属性可以用于类、结构体和
枚举,存储属性只能用于类和结构体。 - 存储属性可以是
变量存储属性(用关键字var定义),也可以是常量存储属性(用关键字let定义),而计算属性只能用var定义 - 计算属性
不直接存储值,而是提供一个getter和一个可选的setter,来间接获取和设置其他属性或变量的值