Swift通過擴展補充協議聲明
通過擴展補充協議聲明
當一個類型已經實現了協議中的所有要求,卻冇有聲明時,可以通過擴展
來補充協議聲明:
struct Hamster {
var name: String
func asText() -> String {
return "A hamster named \(name)"
}
}
extension Hamster: TextRepresentabl {}
從現在起,Hamster
的實例可以作為TextRepresentable
類型使用
let simonTheHamster = Hamster(name: "Simon")
let somethingTextRepresentable: TextRepresentabl = simonTheHamester
println(somethingTextRepresentable.asText())
// 輸出 "A hamster named Simon"
注意: 即時滿足了協議的所有要求,類型也不會自動轉變,因此你必須為它做出明顯的協議聲明