프로토콜은 Swift에서 인터페이스를 정의하는 방법입니다. (약속)
명명 규칙 > 일반적으로(##able, ##delegate, ##ing 등)
프로토콜은 특정 역할을 수행하기 위해 필요한 메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다.
클래스, 구조체, 열거형은 프로토콜을 채택하여 프로토콜에 정의된 요구사항을 구현할 수 있습니다.
요구사항 정의 :
프로토콜은 특정 역할을 수행하기 위해 필요한 메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다. 프로토콜은 선언만 하고 구현하지 않습니다.
채택(Adopting) :
클래스, 구조체, 열거형은 프로토콜을 채택하여 프로토콜에 정의된 요구사항을 구현할 수 있습니다. 채택한 타입은 프로토콜의 요구사항을 모두 충족해야 합니다.
다중 프로토콜 채택 :
하나의 타입은 여러 개의 프로토콜을 동시에 채택할 수 있습니다. > "다중 프로토콜 채택"
// 프로토콜 정의
protocol Vehicle {
var numberOfWheels: Int { get }
func drive()
}
// 클래스가 프로토콜을 채택
class Car: Vehicle {
var numberOfWheels: Int = 4
func drive() {
print("Car is driving!")
}
}
>> // 구조체가 프로토콜을 채택
struct Bicycle: Vehicle {
var numberOfWheels: Int = 2
func drive() {
print("Bicycle is pedaling!")
}}
// 프로토콜 타입을 사용
let vehicle1: Vehicle = Car()
let vehicle2: Vehicle = Bicycle()
vehicle1.drive() // 출력: "Car is driving!"
vehicle2.drive() // 출력: "Bicycle is pedaling!"
구조체, 열거형, 클래스 등에서 프로토콜을 사용할때는 프로토콜에서 정의한 변수, 함수를 따라야합니다.
하지 않을경우 > 에러 발생
참고(출처) : 개발하는 정대리, 야곰(Swift 5)
덕분에 좋은 정보 얻어갑니다, 감사합니다.