首页 > Question about Swift

Question about Swift

上图中simonTheHamster就是Hamster的实例,直接打印simonTheHamster.TextRepresentable就行,为什么要在加一个somethingTextRepresentable?

图片来自 The Swift Programming Language 中文版
http://wiki.jikexueyuan.com/project/swift/chapter2/22_Protocols.html#c65615c678a0d4c18cd2b869b16892f0

多谢解答


这只是示例代码,就是一个向上转型,主要是为了说明可以用一个空的extension来显示地声明该类是实现了某协议的。你问题里的那段代码上面还有这么一段:

struct Hamster {
    var name: String
    var textualDescription: String {
        return "A hamster named \(name)"
    }
}
extension Hamster: TextRepresentable {}

也就是这个Hamster是comfirmTextRepresentable协议的,所以simonTheHamster既可以被当作Hamster类型,也可以被当作TextRepresentable类型。


你给的链接中,我没有找到你的代码。但是我看你的三行代码,我觉得可是想讲类的继承相关知识吧。首先你初始化了一个类的实例。但是你的第二行却把这个类的实例转化成了另外一个累。既然能这么些,我觉得这两个类是子类与父类的关系。不知道猜的对不对。因为是用手机看的。所以没有在你给的链接中找到你相应的代码。字太小了。

【热门文章】
【热门文章】