プロトコルを使うメリット 複数適用できる 柔軟性が高い 抽象化できる 基本文法 多言語でいうインターフェース classやstructやenumなどで使える。 複数適用可能 @objc optional なメソッドを定義できる デリゲートで使う ドキュメント Extensionで読みやすく protocol SomeProtocol { var computedA: String { get } func methodA(_ str: String) func methodB(a: Int, b: Int) -> Int } class someClass {} extension someClass: SomeProtocol { var computedA: String { return "a" } func methodA(_ str: String) { print(str) }