[swift] 54. 프로토콜 조건적용

RudinP·2023년 10월 20일
0

Study

목록 보기
73/227

extensionwhere 키워드를 이용해서 프로토콜을 조건에 따라 적용할 수 있다.

Protocol Naming{
	var name: String {get, set}
}

extension Naming where Self: Cat{
	func sayHi(){
    	print("\(name) 야옹")
    }
}

Class Cat: Naming{
	var name: String
    init(name: String){
    	self.name = name
    }
}

Class Dog: Naming{
	var name: String
    init(name: String){
    	self.name = name
    }
}

let cat = Cat(name: "고양이")
cat.sayHi() //고양이 야옹
let dog = Dog(name: "강아지")
//dog.sayHi()없음
  • extension이 아닌 func등 멤버에도 적용 가능
extension Naming{
	func sayHi() where Self = Cat{
    	...
    }
    func sayHi() where Self = Dog{
    	...
    }
}
profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글