프로토콜 확장
작성일
프로토콜 확장
// 이름관련 프로토콜
protocol Naming {
var lastname : String { get set }
var firstname : String { get set }
func getName() -> String
}
// 익스텐션확장을 통해 프로토콜에 메소드 추가
extension Naming {
func getFullname() -> String {
return self.lastname + self.fristname
}
}
// Naming 프로토콜을 임플레먼트하는 스트럭트
struct Friend : Naming {
var lastname : String
var firstname : String
func getName() -> String{
return self.firstname
}
}
let myFriend = Friend(lastname:"최", firstname:"재권")
let name = myFriend.getName()
print("네임: ", name)
// Friend 스트럭트에는 없지만 프로토콜 확장을 통해 메소드가 추가된 것을 확인할 수 있음
let fullname = myFriend.getFullname()
print("풀네임: \(fullname)")