오늘은 프로토콜에 대해 정리해 볼 예정입니다.
저는 프로토콜이란 이름을 통신규약을 배울 때 처음 접하였는데 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;
}
protocol을 선언할 때 변수는 항상 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로 지정할 수 있습니다.
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
protocol에서 정의한 메소드는 리턴 값과 파라미터까지 모두 정의 할 수 있습니다.
이처럼 오늘은 protocol에 대하여 알아봤습니다.
다음부터는 실전으로 ㄲ!