结构体、枚举和类定义静态属性

struct 结构体名 {                   ①  
    static var(或let) 存储属性  = "xxx"                  ②  
    ......  
    static var 计算属性名 : 属性数据类型 {         ③  
    get {         
        return 计算后属性值    
    }  
    set (新属性值) {    
        ......  
    }  
    }  
}  
  
  
enum 枚举名 {                  ④  
    static var(或let) 存储属性  = "xxx"                  ⑤  
    ......  
    static var 计算属性名 : 属性数据类型 {         ⑥  
    get {     
        return 计算后属性值      
    }      
    set (新属性值) {  
        ......  
    }       
    }  
}  
  
  
class 类名 {                  ⑦  
    ......  
    class var 计算属性名 : 属性数据类型 {          ⑧  
    get {  
        return 计算后属性值  
    }     
    set (新属性值) {    
        ......  
    }    
    }  
}  

上述代码中,第①行是定义结构体,结构体中可以定义静态存储属性和计算属性。第②代码是定义静态存储属性,声明关键字是static,这个属性可以是变量属性,也可以是常量属性。第③行代码是定义静态计算属性,声明使用的关键字是static,计算属性不能为常量,这里只能是变量。结构体静态计算属性也可以是只读的,语法如下:static var 计算属性名 : 属性数据类型 { return 计算后属性值}第④行是定义枚举,枚举中不可以定义实例存储属性,但可以定义静态存储属性,也可以定义静态计算属性。定义枚举静态属性与定义结构体静态属性的语法完全一样,这里就不再赘述了。第⑦行是定义类,类中可以定义实例存储属性,但不可以定义静态存储属性。类中可以定义静态计算属性。声明使用的关键字是class,这与结构体和枚举的声明不同。我们对上述说明进行了归纳,见下表。

结构体、枚举和类定义静态属性_第1张图片

提示 在静态计算属性中不能访问实例属性(包括存储属性和计算属性),但可以访问其他静态属性。在实例计算属性中能访问实例属性,也能访问静态属性。

你可能感兴趣的:(结构体、枚举和类定义静态属性)