學習swift面向協議程式設計 類和結構體

2021-08-18 15:07:26 字數 919 閱讀 1352

類定義:

[修飾符] class 類名

結構體定義:

[修飾符] struct 結構體名

修飾符可以是 private | internal | public、類可以用final,結構體不支援繼承而不能用final修飾,或者省略這些修飾符。類和結構體定義通常包含構造器、屬性和方法。

類:

類可以單繼承,可定義屬性(properties)儲存值,定義方法(methods)以提供功能,類的構造器是建立類例項的途徑,如果定義類時沒有定義構造器,則系統會為該類提供乙個預設無引數的構造器。可進行擴充套件(extension)

結構體:

結構(structure)以下特性是結構所不具備的:

繼承使得類可以繼承另乙個類的特性, 在執行時可通過型別轉換(type casting)檢查和解釋某個類例項的型別, 析構方法(deinitializer)可使某個類例項釋放(free up)其被賦予的任何資源, 引用計數(reference counting)允許對某個類例項的多個引用

如果定義結構體時沒有定義構造器,則系統會為該類提供兩個構造器,乙個無引數構造器,乙個初始化所有儲存屬性的構造器。

區別:

協議:

protocol 協議名

協議可以繼承乙個到多個其他協議(多繼承),語法和類繼承相似

protocol 協議名: 繼承協議名1, 繼承協議名2

swift中協議的作用相當於其他語言的介面。

瘋狂swift講義(李剛)

潘老師講義

Swift 面向協議程式設計入門

本文講的是swift 面向協議程式設計入門,class humanclass var classyhuman humanclass name bob classyhuman.name bob var newclassyhuman classyhuman created a copied object...

Swift 面向協議程式設計之協議擴充套件

協議的命名遵循swift的標準庫,即協議名以 type able ible 結尾。例如 sequencetype,generatortype,customstringcoveeertible,type定義行為,able定義元素怎樣做事。swift 能擴充套件協議 協議可以新增方法和屬性 協議擴充套件...

Swift面向協議程式設計入門指北

熟悉objective c語言的同學們肯定對協議都不陌生,在swift中蘋果將protocol這種語法發揚的更加深入和徹底。swift中的protocol不僅能定義方法還能定義屬性,配合extension擴充套件的使用還能提供一些方法的預設實現,而且不僅類可以遵循協議,現在的列舉和結構體也能遵循協議...