Swift回憶錄 屬性

2021-07-30 11:41:34 字數 1450 閱讀 6064

儲存屬性:儲存在特定類或結構體例項裡的乙個常量或變數

延遲儲存屬性 :當第一次被呼叫的時候才會計算其初始值的屬性。在屬性宣告前使用 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萬,開始了我們的創業之旅,可惜不是風投,團隊只是占有很少一部分股份,投資方佔據了大頭,說上市前保證團隊股份不變,總公...