Swift擴展聲明
擴展聲明
擴展聲明用於擴展一個現存的類,結構體,枚舉的行為。擴展聲明以關鍵字extension開始,遵循如下的規則:
extensiontype
:adopted protocols
{
declarations
}
一個擴展聲明體包括零個或多個聲明。這些聲明可以包括計算型屬性,計算型靜態屬性,實例方法,靜態和類方法,構造器, 下標腳本聲明,甚至其他結構體,類,和枚舉聲明。擴展聲明不能包含析構器,協議聲明,存儲型屬性,屬性監測器或其他 的擴展屬性。詳細討論和查看包含多種擴展聲明的實例,參見擴展一節。
擴展聲明可以向現存的類,結構體,枚舉內添加一致的協議。擴展聲明不能向一個類中添加繼承的類,因此 type-inheritance-clause是一個隻包含協議列表的擴展聲明。
屬性,方法,現存類型的構造器不能被它們類型的擴展所重寫。
擴展聲明可以包含構造器聲明,這意味著,如果你擴展的類型在其他模塊中定義,構造器聲明必須委托另一個在 那個模塊裡聲明的構造器來恰當的初始化。
擴展(Extension)聲明語法
擴展聲明 → extension 類型標識 類型繼承子句 可選 extension-body
extension-body → { 聲明(Declarations)列表 可選 }