Swift 學習筆記 2 類 結構體 列舉

2021-07-25 23:29:28 字數 1444 閱讀 6310

結構體、列舉、類均有屬性 方法 下表 構造器 巢狀型別 五中型別成員

enum season
列舉的原始值: 具體列舉等號右邊的 rawvalue

列舉的關聯值

列舉遞迴: 列舉值包含的關聯值型別本身又是列舉自身,需要使用 indirect 方法

[修飾符] class/struct  型別
修飾private/internal/public、 final

final表示不可以被過載

列舉和結構體是值型別,所以盡量設計地輕量一點。類例項是引用型別

封裝少量資料、自動複製副本、確定不需要繼承和被繼承 這三種情況下,使用結構體.

列舉不能例項儲存屬性

類計算、儲存屬性

[修飾符] var 計算屬性名 : 屬性型別 

set(形參名)

}[修飾符] var 儲存屬性名 : 屬性型別

didset (oldvalue)

}

值型別不可改變儲存屬性: mutating 暫時沒用上,後續發掘此用法

陣列字典訪問方法,同乙個型別定義多個下表,通過下表形參列表和返回值區分不同的下表。這個特別靈活,可以多想想這裡的拓展用法,應該會有大驚喜

類下標訪問

subscript

((形成列表) -> 下表返回值 )

set(形參名)

}

class 和 static 修飾符

class 和 static 修飾成型別成員、型別方法,

結構體和列舉只能使用static, 類可以使用 static 和 class

用static 不可被重寫,用class修飾表示可以被子類重寫。

錯誤處理

四種錯誤處理方法

傳播給呼叫該函式的**

func procesfn () throw

try processfn()

do catch 捕獲

do catch pattern 1 catch pattern 2

將錯誤轉成可選值

func processfn() throw -> int

let try? processfn()

使錯誤失效。

let try! processfn()

defer

定義: defer定義的函式內,在此函式完成後,立即再次呼叫defer 定義的**塊。

無關的話

學了還是要用,第一版swift文件出來的時候,還湊熱鬧學了一次,現在都忘得差不多了。這次至少要做個小專案出來練練手才不至於生疏。

Swift 類與結構體(2)

swift 類與結構體 2 在這裡,我們從函式的角度來出發看類與結構體 一 函式相關的修飾符 1.mutating修飾符 前提 在swift中class 和struct中都可以定義方法,但是在預設情況下值型別的屬性是無法被自身的例項方法修改的 struct student mutating func...

Swift學習筆記 七 類和結構體

類和結構體的比較 1 相同點 定義屬性用於儲存值 定義方法用於提供功能 定義下標用於通過下標語法訪問值 定義構造器用於生成初始化值 通過擴充套件以增加預設實現的功能 符合協議以對某類提供標準功能 2 與結構體相比,類還有如下的附加功能 繼承允許乙個類繼承另乙個類的特徵 型別轉換允許在執行時檢查和解釋...

swift學習筆記 4 結構體和類

類和結構體 相同點 1.類和結構體都可以定義屬性和方法 這是和c oc中的結構體的最大區別 2.類和結構體中都能定義構造器方法 不同點 1.類可以在析構體deinit中釋放資源,結構體不可以 2.類可以繼承.結構體是不能被繼承 3.類是乙個引用型別,乙個例項可以有多個引用,操作的是例項的本身 結構體...