在哪里实现Swift协议?

前端之家收集整理的这篇文章主要介绍了在哪里实现Swift协议?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Swift中实现协议一致性时我有两个选择,结果相同:

>在类中实现协议 – 即在类定义顶部声明一致性,并将实现放在类主体中,或者
>在扩展中实现协议 – 即完全在类外编写协议一致性.

这是一个例子:

public class MyClass : CustomDebugStringConvertible {
    ... // Something
    public var debugDescription : String {
        return "MyClass"
    }
}

class MyClass {
    ... // Something
}
extension MyClass : CustomDebugStringConvertible {
    public var debugDescription: String {
        return "MyClass"
    }
}

Swift书中的代码示例倾向于集中于第一种方法; Apple’s source code of Swift core显示他们只使用第二种方法(例如,参见Bool和Optional).

是否有一种合理的方法可以根据情况决定两种方法,还是仅仅是编码偏好的问题?

这更像是编码偏好和可读性的问题.如果你认为你的课程会变得很庞大,那么在扩展中实现它可能更有意义,这样它的方法就不会给你的类增加混乱.如果它是一个短类,我会说一个,因为可读性受影响较小.
原文链接:https://www.f2er.com/swift/318659.html

猜你在找的Swift相关文章