준수 타입이 구현해야 하는 요구 사항을 정의합니다.
프로토콜은 특정 작업이나 기능에 적합한 메서드, 프로퍼티 및 기타 요구 사항의 청사진을 정의합니다.
프로토콜은 이러한 요구 사항을 실제로 구현하기 위해 클래스, 구조체 또는 열거형에 의해 채택될 수 있습니다.
프로토콜의 요구 사항을 충족하는 모든 타입은 해당 프로토콜을 준수한다고 합니다.
클래스, 구조체 및 열거형과 매우 유사한 방식으로 프로토콜을 정의합니다.
protocol SomeProtocol {
// 프로토콜 정의를 이곳에 합니다.
}
사용자 지정 타입(Custom types)은 정의의 일부로 콜론으로 구분된 타입 이름 뒤에 프로토콜 이름을 배치하여 특정 프로토콜을 채택한다고 명시합니다.
struct SomeStructure: FirstProtocol, AnotherProtocol {
// 구조체 정의는 이곳에 합니다.
}
클래스에 슈퍼클래스가 있는 경우 채택하는 프로토콜 앞에 슈퍼클래스 이름을 나열하고 그 뒤에 쉼표를 붙입니다.
class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocl {
// 클래스의 정의는 이곳에 합니다.
}