結構體、列舉、類均有屬性 方法 下表 構造器 巢狀型別 五中型別成員
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.類是乙個引用型別,乙個例項可以有多個引用,操作的是例項的本身 結構體...