swift學習要點摘要19 23(完結)

2021-06-26 05:49:49 字數 1128 閱讀 2027

19.型別巢狀

要在乙個型別中巢狀另乙個型別,將需要巢狀的型別的定義寫在被巢狀型別的區域{}內,而且可以根據需要定義多級巢狀。

20.擴充套件

擴充套件就是向乙個已有的類,結構體或列舉型別新增新功能(functionality)。這包括在沒有許可權獲取原始碼的情況下擴充套件型別的能力(既逆向建模)。

swift 中的擴充套件可以: 1. 新增計算型屬性和靜態屬性 2.定義例項方法和型別方法 3.提供新的構造器 4.定義下標 5.定義和使用新的巢狀型別 6.使乙個已有型別符合某個介面

extension sometype

extension sometype:someprotocol, anotherprotocol

21.協議

protocol(協議)用於統一方法和屬性的名稱,而不實現任何功能。協議遵循者需要提供協議指定的成員,如屬性,方法,操作符,下標等。

當某個類含有父類的同時實現了協議,應當把父類放在所有的協議之前,如下所示:

class someclass : somesuperclass, firstprotocol, anoherprotocol

委託:委託是一種設計模式,它允許類或結構體將一些需要它們負責的功能交由(委託)給其他的型別。

委託模式的實現很簡單:定義協議來封裝哪些需要被委託的函式和方法,使其遵循者擁有這些被委託的函式和方法。

22.泛型

swift的陣列和字典型別都是泛型集。

func swaptwovalues(inout a: t, inout b: t)

型別約數:指定了乙個必須繼承自指定類的型別引數,或者遵循乙個特定的協議或協議構成。

型別約數語法:func somefunction(somet: t, someu: u)  //t必須是someclass子類,u必須遵循someprotocol協議

23.高階運算子

swift為整形計算提供了5個&符號開頭的溢位運算子:&+,&-,&*,&/,&%

新的全域性運算子宣告需要在全域性域使用operator關鍵字宣告,可以宣告為前置,中置或後置的。operator prefix +++ {}

c 學習摘要

1.析構函式為什麼多為虛函式 基類的成員函式如果為虛函式,那麼其子類可以重新實現該函式,如果基類成員函式不為虛函式,那麼子類如果想擁有該方法需要過載。析構函式在物件銷毀時呼叫,用以銷毀物件內那些未被銷毀的變數。這就要求子類可以有自己的析構函式,來銷毀自己的需要銷毀的變數。2.什麼是純虛函式 基類本身...

C學習摘要

在 c 語言中,凡不加返回值型別限定的函式,就會被編譯器作為返回整型值處理。在多重迴圈中,如果有可能,應當將最長的迴圈放在最內層,最短的迴圈放在最外層,以減少 cpu 跨切迴圈層的次數。return 語句不可返回指向 棧記憶體 的 指標 因為該內存在函式體結束時被自動銷毀。大端模式 big endi...

GC Tuning Case學習摘要

case 1 場景 4cpu 2.6.18 xmx1536m xms1536m xmn500m 目標減少gc次數,以避免由於gc造成難以支撐高併發量 方法 降低響應時間或請求次數,這個需要重構,比較麻煩 減少舊生代記憶體的消耗,比較靠譜 減少每次請求的記憶體消耗,貌似比較靠譜 降低gc造成的應用暫停...