Swift 個人學習筆記 09 屬性

2021-09-16 23:46:01 字數 948 閱讀 8340

本文章純粹是中文版《the swift programming language》的學習筆記,所以絕大部分的內容都是文中有的。本文是本人的學習筆記,不是正式系統的記錄。僅供參考

以下還是有很多沒看懂、不確定的地方,我會以「存疑」的註解指出。

在此感謝中文版翻譯者,這極大地加快了 swift 的學習速度。

中文版:swift 3 程式語言 - 屬性

屬性可以分為計算屬性儲存屬性兩種。

在類的內部,可以定義屬性觀察器,實現在屬性變化前和變化後做相應的處理。

使用letvar引入。

使用lazy關鍵字來修飾變數,則相應的屬性在首次使用的時候才會去計算其值。比如說在類裡面定義乙個 lazy 類成員,那麼這個成員直郵在首次訪問的時候才會建立相應的例項。

需要注意的是:延遲儲存屬性本身並不是執行緒安全的

提供乙個getter和乙個可選的setter來間接得到和設定相應的屬性值。類似於 objective-c 裡面過載 getter 和 setter 的行為。以下是例子:

struct rect 

set (newcenter)

}}

如果只提供了 getter 就表示這是乙個唯讀屬性。

除了 lazy 屬性之外,所有屬性都可以觀察,主要是willsetdidset關鍵字。

class stepcounter 

didset

}}

這種屬性,在所有同一型別的類的所有例項僅有乙個拷貝。必須賦予乙個預設值,不可以使用 lazy 關鍵字。使用static關鍵字來標識。

Swift 個人學習筆記 06 控制流

本文章純粹是中文版 the swift programming language 的學習筆記,所以絕大部分的內容都是文中有的。本文是本人的學習筆記,不是正式系統的記錄。僅供參考 以下還是有很多沒看懂 不確定的地方,我會以 存疑 的註解指出。在此感謝中文版翻譯者,這極大地加快了 swift 的學習速度...

Swift 個人學習筆記 02 基礎內容

以下還是有很多沒看懂 不確定的地方,我會以 存疑 的註解指出。在此感謝中文版翻譯者,這極大地加快了 swift 的學習速度。中文版 swift 3 程式語言 int型別與處理器位寬相同。同理uint。這一點類似於 c 裡面的 long 型別。另有 uint8,int8,uint16,int16,ui...

Swift 個人學習筆記 07 列舉

本文章純粹是中文版 the swift programming language 的學習筆記,所以絕大部分的內容都是文中有的。本文是本人的學習筆記,不是正式系統的記錄。僅供參考 以下還是有很多沒看懂 不確定的地方,我會以 存疑 的註解指出。在此感謝中文版翻譯者,這極大地加快了 swift 的學習速度...