//計(jì)算屬性
class MyClass0{
? ? //存儲屬性? 不能用class修飾存儲屬性,編譯報(bào)錯(cuò)
? ? static var bar = "";
? ? var temp = "";
? ? //計(jì)算屬性
? ? var hehe:String {
? ? ? ? get{
? ? ? ? ? ? return temp+"lalala";
? ? ? ? }
? ? ? ? set{
? ? ? ? ? ? temp = newValue;
? ? ? ? }
? ? }
}
let obj = MyClass0();
obj.hehe = "woshihaoren";
print(obj.hehe);
//計(jì)算屬性(類的計(jì)算屬性)
class MyClass1{
? ? static var bar = "";
? ? var temp = "";
? ? //class可以修飾計(jì)算屬性
? ? class var hehe:String {
? ? ? ? get{
? ? ? ? ? ? return bar+"lalala";
? ? ? ? }
? ? ? ? set{
? ? ? ? ? ? bar = newValue;
? ? ? ? }
? ? }
}
MyClass1.hehe = "nishihaoren";
print(MyClass1.hehe);
//存儲屬性
class MyClass2{
? ? var temp = "你是誰" {
? ? ? ? willSet{
? ? ? ? ? ? //這里可以取到新值
? ? ? ? ? ? print("將要給屬性賦值啦! \(newValue)")
? ? ? ? }
? ? ? ? didSet{
? ? ? ? ? ? //這里可以取到舊值
? ? ? ? ? ? print("已經(jīng)給屬性賦值啦! \(temp) === \(oldValue)")
? ? ? ? }
? ? }
}
let obj2 = MyClass2();
obj2.temp = "heheda";
print(obj2.temp);