大佬教程收集整理的这篇文章主要介绍了swift – 在扩展中重新声明成员隐藏原始成员*有时*.为什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
extension Date { var timeIntervalSinceNow: TimeInterval { return 1000 } }
更奇怪的是,这实际上是评估为1000:
Date().timeIntervalSinceNow
>扩展似乎隐藏了原始成员.
所以我试着用我自己的班级做到这一点:
class A { var a: String { return "A" } } extension A { var a: String { return "a" } }
>并且无法编译:“无效重新声明’a’”.
我观察到这不会影响原始成员通过协议的使用,这是隐藏的预期行为:
extension Date { var description: String { return "XXXX" } } let date: CustomStringConvertible = Date() date.description // normal date Date().description // "XXXX"
你能解释为什么子弹出现了现象吗?
以上是大佬教程为你收集整理的swift – 在扩展中重新声明成员隐藏原始成员*有时*.为什么?全部内容,希望文章能够帮你解决swift – 在扩展中重新声明成员隐藏原始成员*有时*.为什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。