結(jié)構(gòu)體、枚舉和類定義靜態(tài)屬性

struct 結(jié)構(gòu)體名 {                   ①  
    static var(或let) 存儲屬性  = "xxx"                  ②  
    ......  
    static var 計算屬性名 : 屬性數(shù)據(jù)類型 {         ③  
    get {         
        return 計算后屬性值    
    }  
    set (新屬性值) {    
        ......  
    }  
    }  
}  
  
  
enum 枚舉名 {                  ④  
    static var(或let) 存儲屬性  = "xxx"                  ⑤  
    ......  
    static var 計算屬性名 : 屬性數(shù)據(jù)類型 {         ⑥  
    get {     
        return 計算后屬性值      
    }      
    set (新屬性值) {  
        ......  
    }       
    }  
}  
  
  
class 類名 {                  ⑦  
    ......  
    class var 計算屬性名 : 屬性數(shù)據(jù)類型 {          ⑧  
    get {  
        return 計算后屬性值  
    }     
    set (新屬性值) {    
        ......  
    }    
    }  
}  

上述代碼中,第①行是定義結(jié)構(gòu)體,結(jié)構(gòu)體中可以定義靜態(tài)存儲屬性和計算屬性。第②代碼是定義靜態(tài)存儲屬性,聲明關(guān)鍵字是static,這個屬性可以是變量屬性,也可以是常量屬性。第③行代碼是定義靜態(tài)計算屬性,聲明使用的關(guān)鍵字是static,計算屬性不能為常量,這里只能是變量。結(jié)構(gòu)體靜態(tài)計算屬性也可以是只讀的,語法如下:static var 計算屬性名 : 屬性數(shù)據(jù)類型 { return 計算后屬性值}第④行是定義枚舉,枚舉中不可以定義實例存儲屬性,但可以定義靜態(tài)存儲屬性,也可以定義靜態(tài)計算屬性。定義枚舉靜態(tài)屬性與定義結(jié)構(gòu)體靜態(tài)屬性的語法完全一樣,這里就不再贅述了。第⑦行是定義類,類中可以定義實例存儲屬性,但不可以定義靜態(tài)存儲屬性。類中可以定義靜態(tài)計算屬性。聲明使用的關(guān)鍵字是class,這與結(jié)構(gòu)體和枚舉的聲明不同。我們對上述說明進行了歸納,見下表。

提示 在靜態(tài)計算屬性中不能訪問實例屬性(包括存儲屬性和計算屬性),但可以訪問其他靜態(tài)屬性。在實例計算屬性中能訪問實例屬性,也能訪問靜態(tài)屬性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容