SWIFTベースからゆっくり!(5)


今日は合意をまとめます.
私が初めてプロトコルという名前に触れたのは、通信規約を勉強したときで、swiftはその定義と使用に不思議を感じました.
swiftの公式サイトには、「特定の機能の実行を要求するために必要な要素の青写真」が記載されています.
上記のように、プロトコルという用語を使う場所で約束を見たら?そういう意味らしい
protocol Person {
    var sex : String {get}
    var age : Int {get set}
}


struct human1 : Person {
    var sex: String ;
    var age : Int;
    var name : String;
}
プロトコルを宣言するときは、変数は常にvarを使用し、getterとsetterを指定する必要があります.
上はstructを使用していますが、classでも使用できます.
protocol one {
    var sex : String {get set}
}

protocol two {
    var age : Int {get}
}


class human1 : one, two {
    var sex: String = "1";
    var age : Int = 2;
    var name : String = "3";
}
複数のプロトコルを使用できます.
メソッドは、プロトコルとして指定することもできます.
protocol Person {
    var sex : String {get set}
    
    func introduce()
    
    func introduceName(first : String) -> String
}

class human1 : Person{
    var sex: String = "1";
    var age : Int = 2;
    var name : String = "dong";
    
    func introduce() {
        print("introduce myself")
    }
    
    func introduceName(first : String) -> String {
        return "\(first) \(self.name)";
    }
}

var Me = human1();

Me.introduceName(first: "kim");//kim dong
プロトコルで定義されたメソッドは、戻り値とパラメータを同時に定義できます.
このように、今日私たちは合意を理解しました.
次は実戦で捕まえるぞ!