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