在哪里实现Swift协议?
发布时间:2020-12-14 05:39:16 所属栏目:百科 来源:网络整理
导读:在 Swift中实现协议一致性时我有两个选择,结果相同: 在类中实现协议 – 即在类定义顶部声明一致性,并将实现放在类主体中,或者 在扩展中实现协议 – 即完全在类外编写协议一致性. 这是一个例子: public class MyClass : CustomDebugStringConvertible { ...
在
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). 是否有一种合理的方法可以根据情况决定两种方法,还是仅仅是编码偏好的问题?
这更像是编码偏好和可读性的问题.如果你认为你的课程会变得很庞大,那么在扩展中实现它可能更有意义,这样它的方法就不会给你的类增加混乱.如果它是一个短类,我会说一个,因为可读性受影响较小.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |