swift 擴充套件

2021-07-30 03:30:52 字數 1021 閱讀 8952

擴充套件就是為乙個已有類、結構體、列舉型別或者協議型別新增新功能。這包括在沒有許可權獲取原始源**的情況下擴充套件型別的能力。擴充套件和objectvie從中的分類類似。

swift中的擴充套件可以:

新增計算型別屬性和計算型型別屬性

定義例項方法和型別方法

提供新的構造器

定義下標

定義和使用新的巢狀型別

使乙個已有型別符合某個協議

在swift中,可以對協議進行擴充套件,提供協議要求的實現,或者新增額外的功能,從而可以讓符合協議的型別擁有這些功能。

擴充套件可以為已有型別新增新的構造器,這可以讓你擴充套件其他型別,將你自己的定製型別作為其構造器引數,或者提供該型別的原始實現中未提供的額外初始化選項。

擴充套件能為類新增新的便利構造器,但是它們不能為類新增新的指定構造器或析構器。指定構造器和析構器必須總是由原始的類實現來提供。

struct size 

struct point

struct rect

可以提供乙個額外的接受指定中心點和大小的構造器來擴充套件rect結構體:

extension rect  }
方法

擴充套件可以為已有型別新增新的例項方法和型別方法。

extension int )
下標

extension int 

var kind: kind }

}

這個例子為int新增了巢狀列舉。這個名為kind的列舉表示特定整數的型別。具體來說,就是表示整數是正數、零或者負數。

func printintegerkinds(_ numbers: [int]) 

}print("") }

printintegerkinds([3, 19, -27, 0, -6, 0, 7]) // 列印 「+ + - 0 - 0 + 」

取自《the swift programming language》中文版

swift型別擴充套件

1.擴充套件語法 2.計算型屬性 3.構造器 4.方法 5.下標 6.巢狀型別 擴充套件就是向乙個已有的類 結構體或列舉型別新增新功能。包括在沒有許可權獲取原始源 的情況下擴充套件型別的能力 即逆向建模 擴充套件和oc中的分類 category 類似。不過與oc不同的是,swift的擴充套件沒有名字...

Swift基礎 擴充套件

對已有的類,結構體或者協議型別新增新的功能,就叫做擴充套件。這是我喜歡swift語法的原因之一,超實用的。語法很簡單 extension 已有型別來一波例子,你就知道了 擴充套件計算屬性 extension float let number float 3number.twice 結果為6擴充套件方...

Swift 擴充套件專題

import foundation struct point struct size class rect 只能擴充套件五種東西 1.方法 2.計算型屬性 3.便利的建構函式 4.巢狀的列舉型別 5.下標 不允許擴充套件成員變數和指定的建構函式 extension rect convenience ...