位置:首页 > 高级语言 > Swift在线教程 > Swift通过扩展补充协议声明

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"


注意: 即时满足了协议的所有要求,类型也不会自动转变,因此你必须为它做出明显的协议声明