我正在阅读另一个SO问题,Swift do-try-catch 语法 https://stackoverflow.com/questions/30720497/swift-do-try-catch-syntax/30720807#30720807。在他的回答中,rickster为 OP 的自定义类创建扩展。Konrad77评论说这是“保持代码整洁的好方法”。我尊重他们的知识,这让我相信我在自己的代码中遗漏了要点。
为我创建的类创建扩展还有其他好处(除了清洁之外)或理由吗?我可以将相同的功能直接放入类中。如果我是唯一使用该课程的人或者其他人将访问该课程,那么答案会改变吗?
对于从头开始创建的类,扩展是一种通过结构的强大文档类型。您将类的核心放在初始定义中,然后添加扩展以提供附加功能。例如,增加对协议的遵守。它为所包含的代码提供局部性:
struct Foo {
let age: Int
}
extension Foo: CustomStringConvertible {
var description:String { return "age: \(age)" }
}
我可以将协议和计算属性放在结构声明中吗?绝对可以,但是当你有超过一两个属性时,它就会开始变得混乱且难以阅读。如果代码不干净且不可读,则更容易产生错误。使用扩展是避免复杂性带来的困难的好方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)