使用結(jié)構(gòu)體聲明可以在你的程序里引入一個結(jié)構(gòu)體類型。結(jié)構(gòu)體聲明使用struct關(guān)鍵字,遵循如下的形式:
structstructure name:adopted protocols{
declarations
}
結(jié)構(gòu)體內(nèi)包含零或多個聲明。這些聲明可以包括存儲型和計算型屬性,靜態(tài)屬性,實(shí)例方法,靜態(tài)方法,構(gòu)造器, 類型別名,甚至其他結(jié)構(gòu)體,類,和枚舉聲明。結(jié)構(gòu)體聲明不能包含析構(gòu)器或者協(xié)議聲明。詳細(xì)討論和包含多種結(jié)構(gòu)體 聲明的實(shí)例,參見類和結(jié)構(gòu)體一節(jié)。
結(jié)構(gòu)體可以包含任意數(shù)量的協(xié)議,但是不能繼承自類,枚舉或者其他結(jié)構(gòu)體。
有三種方法可以創(chuàng)建一個聲明過的結(jié)構(gòu)體實(shí)例:
-調(diào)用結(jié)構(gòu)體內(nèi)聲明的構(gòu)造器,參照構(gòu)造器(initializers)一節(jié)。
—如果沒有聲明構(gòu)造器,調(diào)用結(jié)構(gòu)體的逐個構(gòu)造器,詳情參見Memberwise Initializers for Structure Types.
—如果沒有聲明析構(gòu)器,結(jié)構(gòu)體的所有屬性都有初始值,調(diào)用結(jié)構(gòu)體的默認(rèn)構(gòu)造器,詳情參見默認(rèn)構(gòu)造器(Default Initializers).
結(jié)構(gòu)體的構(gòu)造過程參見初始化(initiaization)一節(jié)。
結(jié)構(gòu)體實(shí)例屬性可以用點(diǎn)(.)來獲得,詳情參見獲得屬性(Accessing Properties)一節(jié)。
結(jié)構(gòu)體是值類型;結(jié)構(gòu)體的實(shí)例在被賦予變量或常量,被函數(shù)調(diào)用時被復(fù)制。獲得關(guān)于值類型更多信息,參見 結(jié)構(gòu)體和枚舉都是值類型(Structures and Enumerations Are Value Types)一節(jié)。
你可以使用擴(kuò)展聲明來擴(kuò)展結(jié)構(gòu)體類型的行為,參見擴(kuò)展聲明(Extension Declaration).
結(jié)構(gòu)體聲明語法
結(jié)構(gòu)體聲明 → 特性(Attributes)列表 可選 struct 結(jié)構(gòu)體名稱 泛型參數(shù)子句 可選 類型繼承子句 可選 結(jié)構(gòu)體主體
結(jié)構(gòu)體名稱 → 標(biāo)識符
結(jié)構(gòu)體主體 → { 聲明(Declarations)列表 可選 }