我正在阅读另一个SO问题,Swift do-try-catch语法.在他的回答中,rickster为OP的自定义类创建了一个扩展.Konrad77评论说这是"保持代码清洁的绝佳方式".我尊重他们的知识,这让我相信我在自己的代码中错过了一点.
是否还有其他好处(除了清洁度)或为我创建的课程创建扩展的原因?我可以直接将相同的功能放入类中.如果我是唯一一个使用该课程的人,或者其他人将访问它,答案是否会改变?
对于从头创建的类,扩展是一种强大的文档结构.您将类的核心放在初始定义中,然后添加扩展以提供其他功能.例如,添加对协议的遵守.它为包含的代码提供了局部性:
struct Foo {
let age: Int
}
extension Foo: CustomStringConvertible {
var description:String { return "age: \(age)" }
}
Run Code Online (Sandbox Code Playgroud)
我可以将protocol和computed属性放在struct声明中吗?当然,当你有超过一两个属性时,它开始变得混乱而且难以阅读.如果代码不干净和可读,则更容易创建错误.使用扩展是避免复杂性带来的困难的好方法.
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |