这篇文章主要介绍“swift的类属性作用是什么”,在日常操作中,相信很多人在swift的类属性作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”swift的类属性作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
延迟存储属性 lazy
//延迟存储属性lazy
classDataImporter{
varfileName="data.txt"
init(){
print("DataImporterinits")
}
}
classDataManager{
lazyvarimporter=DataImporter()
vardata=[String]()
}
letmanager=DataManager()
manager.data.append("Somedata")
manager.data.append("Somemoredata")
print("manager.data.appendfinish")
//manager.data.appendfinish
print(manager.importer.fileName)
/*
DataImporterinits
data.txt
*/
计算属性
//计算属性
structPoint{
varx=0.0,y=0.0
}
structSize{
varwidth=0.0,height=0.0
}
structRect{
varorigin=Point()
varsize=Size()
varcenter:Point{
get{
Point(x:origin.x+(size.width/2),y:origin.y+(size.height/2))
}
set{
origin.x=newValue.x-(size.width/2)
origin.y=newValue.y-(size.height/2)
}
}
}
letrect=Rect(origin:Point(x:2,y:2),size:Size(width:4,height:4))
print(rect.center)
//Point(x:4.0,y:4.0)
属性观察者 willSet & didSet
//属性观察者willSet&didSet
classStepCounter{
vartotalSteps:Int=0{
//在值被存储之前调用
willSet(newTotalSteps){
print("AbouttosettotalStepsto\(newTotalSteps)")
}
//在新值在存储之后调用
didSet{
iftotalSteps>oldValue{
print("Added\(totalSteps-oldValue)step")
}
}
}
}
letstepCounter=StepCounter()
stepCounter.totalSteps=200
stepCounter.totalSteps=360
stepCounter.totalSteps=456
/*
AbouttosettotalStepsto200
Added200step
AbouttosettotalStepsto360
Added160step
AbouttosettotalStepsto456
Added96step
*/
类型属性
//类型属性
classSomeClass{
staticvarstoredTypeProperty="SomeValue."
staticvarcomputedTypeProperty:Int{
return27
}
}
print(SomeClass.storedTypeProperty)
//SomeValue.
到此,关于“swift的类属性作用是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!