恒等運算符
因為類是引用類型,有可能有多個常量和變量在幕后同時引用同一個類實例。(對于結(jié)構(gòu)體和枚舉來說,這并不
成立觉至。因為它們作為值類型,在被賦予到常量惑芭、變量或者傳遞到函數(shù)時,其值總是會被拷貝绒障。)
如果能夠判定兩個常量或者變量是否引用同一個類實例將會很有幫助统扳。為了達到這個目的,Swift 內(nèi)建了兩個恒 等運算符:
? 等價于(===)? 不等價于( !== )
使用關(guān)鍵字 static 來定義類型屬性。在為類(class)定義計算型類型屬性時,可以使用關(guān)鍵字 class 來支持子 類對父類的實現(xiàn)進行重寫贪婉。下面的例子演示了存儲型和計算型類型屬性的語法:
class 修飾的屬性
但是,如果你確實需要在某個具體的方法中修改結(jié)構(gòu)體或者枚舉的屬性,你可以選擇 變異(mutating) 這個方 法,然后方法就可以從方法內(nèi)部改變它的屬性;并且它做的任何改變在方法結(jié)束時還會保留在原始結(jié)構(gòu)中反粥。方法 還可以給它隱含的 self 屬性賦值一個全新的實例,這個新實例在方法結(jié)束后將替換原來的實例。
mutating
防止重寫
你可以通過把方法,屬性或下標腳本標記為 final 來防止它們被重寫,只需要在聲明關(guān)鍵字前加上 final 特性即
可疲迂。(例如: final var , final func , final class func , 以及 final subscript )
類型轉(zhuǎn)換
類型轉(zhuǎn)換在swift中使用is和as操作符實現(xiàn)才顿。is? as? as鬼譬!
Any? ? AnyObject
Any 可以表示任何類型娜膘,包括方法類型
AnyObject? 可以代表任何class 類型的實例