목록프로토콜 (7)
大器晩成
프로토콜의 확장 프로토콜을 채택한 타입에 제공하기 위해서 메서드, 초기화, 서브 스크립트, 연산 프로퍼티들은 확장에서 구현할 수 있습니다.protocol Bird { func fly() //Withness Table func sit()}class Eagle: Bird { }class Sparrow: Bird { func fly() { print("참새가 날고 있습니다.") } func hunt() { print("참새가 사냥 중입니다.") }}extension Bird { func fly() { print("새가 날고 있습니다.") } func sit() { print("새가 앉아 있습니다."..

프로토콜도 상속이 가능합니다.프로토콜의 경우 상속과 다르게 다중 상속이 가능합니다.-> 여러 가지 요구사항들의 나열protocol Bird { func fly() func sit()}protocol Animals { func eat() func sleep()}protocol Eagle: Bird, Animals { //func fly() { } //func sit() { } //func eat() { } //func sleep() { } func hunt() }class baldEagle: Eagle { func fly() { } func sit() { } func eat() { } func s..
스위프트에서 프로토콜은 일급객체이기 때문에, 타입으로 사용할 수 있습니다. * 프로토콜은 타입입니다.protocol Bird { func fly() func sit()}struct Eagle: Bird { func fly() { print("독수리가 날고있습니다.") } func sit() { print("독수리가 앉아있습니다.") } func hunt() { print("독수리가 사냥 중입니다.") } }struct Sparrow: Bird { func fly() { print("참새가 날고있습니다.") } func sit() { print("참새가 앉아있..
[서브스크립트 요구사항]get, set 키워드를 통해 읽기/쓰기 여부를 설정 (최소한의 요구사항)get 키워드 -> 최소한 읽기 서브스크립트로 구현 / 읽기, 쓰기 모두 구현 가능합니다.get/set 키워드 -> 반드시 읽기, 쓰기 모두 구현해야 합니다.protocol Numbers { subscript(idx: Int) -> Int { get }}struct Number: Numbers { // subscript(idx: Int) -> Int {// get {// return 0// }// } subscript(idx: Int) -> Int { get { return 0 } set..