[swift] 프로토콜과 구조체
Swift 언어는 프로토콜과 구조체를 사용하여 강력한 기능을 제공합니다. 프로토콜은 인터페이스를 나타내며 구조체는 값 타입을 나타냅니다. 두 가지 기능을 함께 사용하면 객체 지향 및 함수형 프로그래밍 스타일을 혼합할 수 있습니다.
프로토콜 (Protocols)
프로토콜은 메서드, 프로퍼티 및 기타 요구 사항을 정의하는 추상적인 유형을 나타냅니다. 구조체, 클래스 또는 열거형은 프로토콜을 채택하여 프로토콜에서 요구하는 기능을 구현할 수 있습니다.
protocol Vehicle {
var numberOfWheels: Int { get }
func start()
func stop()
}
위의 예제에서 Vehicle
프로토콜은 차량을 나타내며 start()
와 stop()
메서드, 그리고 numberOfWheels
프로퍼티를 요구합니다.
구조체 (Structs)
구조체는 값을 캡슐화하고 전달하는 데 사용되며 프로토콜과 함께 사용될 때 강력한 기능을 발휘합니다.
struct Car: Vehicle {
var numberOfWheels: Int = 4
func start() {
print("Car started")
}
func stop() {
print("Car stopped")
}
}
위의 예제에서 Car
구조체는 Vehicle
프로토콜을 채택하고 요구되는 모든 기능을 구현합니다.
장점
프로토콜과 구조체를 함께 사용함으로써 코드의 유연성과 재사용성을 향상시킬 수 있습니다. 또한, 다중 상속과 달리 Swift의 프로토콜은 다중 채택이 가능하므로 여러 프로토콜을 하나의 타입이 채택할 수 있습니다.
프로토콜과 구조체는 Swift 언어의 독특한 특징으로, 객체 지향 및 함수형 프로그래밍 패러다임을 유연하게 결합할 수 있는 강력한 수단을 제공합니다.
기존 코드에 유연성을 더하는 방법에 대해 더 알아보세요.