[Swift] Protocol


前に独自のセキュリティキーボードを作成するときにプロトコルを使用し、他のファイルにデータを渡すために重要に見えます.そして、これが何なのか分からないので、知っておく必要があると思い、グーグルゲームを一生懸命やりました.
契約とは?
アップルの公式ドキュメントで定義されているprotocolの定義は以下の通りです.
"A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality."
...?
特定のタスクまたは機能を実装する方法とその他の要件の集合?
だからもう一度探してみてください.一般的な開発者のブログではそう言っています.
Javaのインタフェースとよく似ています
Javaのインタフェース?
私は部隊でjavaの本を買ったことがあるので、本をめくって、インタフェースが何なのかを見ました.
例えば、ソフトウェアを開発します.しかし、iOSではなくアプリケーションを開発し、アンドロイドシステムに使用するという.
1人の開発者が開発し、むやみに開発した場合、2つのソフトウェアの結果は完全に一致していますか?また、今後メンテナンスを行うと、さらに複雑になります.
だから.

  • 機能別に分類

  • 機能によるメソッドの宣言

  • 機能に基づいて変数を決定します.
  • このように基準を定めると,プラットフォームにかかわらず,プログラムを一貫した方法で使用したり,プログラムを記述したりすることができる.つまり、「インタフェースを統一した」ということです.ということです.
    また,インタフェースは,複数のクラスで使用されるフィールドとメソッドを一致させるための説明のようである.つまり、実際に存在するオブジェクトではないため、インタフェースにオブジェクトを作成することはできません.
    したがって、インタフェースでフィールドを宣言することは、オブジェクトの作成にかかわらず、使用可能なstaticとして宣言する必要があることを意味します.
    プロトコルの基本形式
    プロトコルの基本形式は次のとおりです.
    protocol 프로토콜 이름{
    //프로토콜 정의를 작성하고
    }
    また,このプロトコルを用いるには,構造体,クラス,列挙型などから継承するように,コロンの後に記述することができる.複数のクラスまたはスーパークラスがある場合は、カンマで区切ります.
    struct aStruct: AProtocol, BProtocol{
    // 구조체
    }
    
    class aClass : Superclass, AProtocol, BProtocol{
    // 클래스 정의
    }
    そうです.
    プロトコル実装
    プロトコルでは、プロトコルに名前とタイプ、およびgetsetを明記する必要があります.(javaのgetter、setterの概念と同じでjavaと非常に似ています)また、専門家は常にvarと宣言する必要があります.
    protocol Student{
    var score:Int{get set}
    var name:String{get}
    }
    また、このプロトコルのタイプを使用するには、プロトコルを実装する必要があります.
    class Harry: Student{
     var studentscore :Int = 0
     var score:Int {
     
     	get {
            	return studentscore
            }
          	set {
                	studentscore = 100
                }
           }
           
     var name: String = Harry
    }
    そうです.
    また、メソッドを定義するときに、関数名と戻り値を指定し、{}を書かないことができます.次にmutatingキーワードを使用して、インスタンスの変更可能性を表すことができます.△価格タイプでしか使えないそうですが、これが何なのかはまだ分かりません.
    protocol Person{
    static func speaking()
    func doing()
    mutating func running()
    }
    
    class Harry:Person{
    
    var heartrate = 80
    static func speaking(){
    	print("내 이름은 Harry입니다.")
        }
    
    func doing(){
    print("나는 지금 쉬는중이야.")
    }
    
    mutating func running(){
    heartrate += 50
    }
    そうです.
    Javaの本を見てこれを見て本当にインタフェースに似ています
    今度は代表によく勉強してから書きます.
    参考資料:
    きょうは常識を交わす
    李東健ブログ-プロトコル
    Javaプログラミングを初めて使用-呉政任