发布于 2015-06-14 01:45:31 | 67 次阅读 | 评论: 0 | 来源: 网络整理

通过扩展补充协议声明

当一个类型已经实现了协议中的所有要求,却没有声明时,可以通过扩展来补充协议声明:


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"


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

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务