儲存屬性:儲存在特定類或結構體例項裡的乙個常量或變數
延遲儲存屬性 :當第一次被呼叫的時候才會計算其初始值的屬性。在屬性宣告前使用 lazy 來標示乙個延遲儲存屬性。
例:
class
score
class
student
延遲儲存屬性必須宣告為變數(var
),因為屬性的初始值可能在例項構造完成之後才會得到,而常量屬性在構造過程完成之前必須要有初始值,因此無法宣告成延遲屬性
計算屬性:直觀點來說就是給屬性提供乙個 getter 和乙個可選的 setter,來間接獲取和設定其他屬性或變數的值
例:
class
student
/**set(newscore)**/
//備註-1
set}
}var stu = student()
stu.core = 90
print(stu.totalscore) //190
stu.totalscore = 60
print(stu.core) //60
備註-1 :如果計算屬性的 setter 沒有定義表示新值的引數名,則可以使用預設名稱 newvalue。唯讀計算屬性
唯讀計算屬性 : 只有 getter 沒有 setter 的計算屬性
例:
class
student
}**/
var totalscore : int
}var stu = student()
stu.core = 90
print(stu.totalscore) //190
備註-2 :唯讀計算屬性的宣告可以去掉 get 關鍵字和花括號屬性觀察器 : 作用於監控和響應屬性值的變化,swift中提供了兩個觀察器:
willset 觀察器會將例:新的屬性值
作為常量引數傳入,如果不為該引數指定名稱,可使用預設名稱newvalue
同樣,didset觀察器會將
舊的屬性值
作為引數傳入,如果不為該引數指定名稱,可使用預設名稱oldvalue
class
student
didset
}}var stu = student()
stu.totalscore = 100
//"willset:100\n"
//"didset:0\n"
print(stu.totalscore) //100
Swift回憶錄 閉包
swift中的閉包相當於swift中的匿名函式。閉包不帶標籤,即沒有外部引數。對於已經確定閉包的函式型別時,由於其所有的型別都可以被正確推斷,因此其返回箭頭 和圍繞在引數周圍的括號可以被省略 var closure int,int int var value closure 1,2 單行表示式閉包可...
技工回憶錄
自己都不知道說自己什麼好了。發一下去年12月寫的東西,依然歷歷在目 這兩天心情非常低沉,對什麼都沒興趣,好像當年呀,熟悉的感覺,不一樣的環境。感覺自己不喜歡工作的環境,感覺現在上班時在勉強自己做事。對自己也非常不滿,從我的角度來看,我現在是一事無成。高中時常說不習慣老師和家長逼著學,所以在學校總是很...
創業回憶錄
1.背景 我們有人懂銷售,有人懂軟體,有人懂硬體,有人懂下位機 我們有行業經驗,都是骨幹,於是乎對於我們創業而言就缺資金了。由於是新興行業,很多企業都想介入,所以很快資金找到了,300萬,開始了我們的創業之旅,可惜不是風投,團隊只是占有很少一部分股份,投資方佔據了大頭,說上市前保證團隊股份不變,總公...