使用protocol
關鍵字宣告協議。
protocol exampleprotocol
mutating func adjust()
}
類、列舉和結構體都能夠響應協議。
class ******class : exampleprotocol
}var a = ******class()
a.adjust()
let adescription = a.******description
struct ******structure: exampleprotocol
}var b = ******structure()
b.adjust()
let bdescription = b.******description
試驗定義乙個列舉型別並響應上面的協議
宣告結構體******structure
時使用的mutating
關鍵字標記會對結構體進行修改的方法。由於類中的方法總是可以修改類的物件,因此不需要在******class
中進行標明。
swift使用extension
關鍵字給乙個已經存在的型別新增功能。你可以給任何地方宣告的型別使用擴充套件,使得它響應某個協議,不管它是從框架還是其它地方匯入的。
extension int: exampleprotocol
mutating func adjust()
}7.******description
試驗給
double
型別使用擴充套件新增乙個absolutevalue
屬性。
可以像其它資料型別一樣用協議來宣告變數或這常量,例如建立乙個物件的集合,使得它可以容納可以響應同乙個協議的不同資料型別的值。當你使用這些值的時候,不能呼叫協議以外的方法。
let protocolvalue: exampleprotocol = a
protocolvalue.******description
//uncomment to see the error
儘管protocolvalue
變數是******class
的物件,但是編譯器把它當成是exampleprotocol
型別。這就意味著你只能訪問協議裡定義的方法和屬性。
Swift簡明教程(五)列舉與結構體
使用enum關鍵字建立列舉型別。與類類似,列舉型別中一樣可以定義方法。enum rank int let ace rank.ace let acerawvalue ace.torow 試驗 編寫乙個函式用來比較兩個rank列舉值 在上面的 中,列舉型別的原始值是int型別,定義的時候只明確了第乙個,...
RMAN簡明教程之六 RMAN的管理
一 report命令 report 命令可以檢測那些檔案需要備份,那些備份能被刪除以及那些檔案能不能獲得的資訊,如 報告資料庫的所有能備份資料檔案物件 report schema 或者 rman report schema at time sysdate 14 rman report schema ...
RMAN簡明教程之六 RMAN的管理
一 report命令 report 命令可以檢測那些檔案需要備份,那些備份能被刪除以及那些檔案能不能獲得的資訊,如 報告資料庫的所有能備份資料檔案物件 report schema 或者 rman report schema at time sysdate 14 rman report schema ...