同じ結果で、スウィフトにプロトコルの適合性を実装するとき、私は2つのオプションがあります。Swiftプロトコルを実装する場所は?
- は、クラス内のプロトコルを実装する - つまり、クラス定義の先頭に準拠を述べる、および実装を置きますまたは
- 拡張子でプロトコルを実装します。つまり、完全にクラス外のコードアッププロトコルに準拠しています。
ここでは一例です:スウィフト冊で
class MyClass {
... // Something
}
extension MyClass : CustomDebugStringConvertible {
public var debugDescription: String {
return "MyClass"
}
}
コードサンプルは、最初のアプローチに集中する傾向がある
public class MyClass : CustomDebugStringConvertible {
... // Something
public var debugDescription : String {
return "MyClass"
}
}
対; Apple's source code of Swift coreは、2番目のアプローチ(例としてBool
とOptional
を参照)のみを使用していることを示しています。
状況に応じて2つのアプローチのどちらを決定するか、または単純にコーディング設定の問題ですか?
これは純粋に優先事項であり、したがって意見の問題です。個人的に私はほとんど常に後者をしますが、必ずしもそうではありません。ここの拡張に関するコメントも参照してください:http://www.apeth.com/swiftBook/ch04.html#_extending_object_types – matt