Swift는 객체 생성 시 초기화를 위한 특별한 메서드, 즉 이니셜라이저(Initializer)를 제공합니다. 이니셜라이저는 새로운 인스턴스가 생성될 때 초기화 과정을 수행하여 모든 프로퍼티에 적절한 값을 할당합니다.
기본 초기화
기본 초기화는 모든 프로퍼티에 초기값을 제공하거나 옵셔널값이 아닌 모든 프로퍼티에 초기화를 보장하는 이니셜라이저입니다. 다음은 기본 초기화 예시입니다.
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
위의 예제에서 Person
클래스는 name
과 age
라는 두 개의 프로퍼티를 가지고 있습니다. init
키워드를 사용하여 기본 초기화를 정의하였습니다.
옵셔널 초기화
옵셔널 초기화는 모든 프로퍼티에 초기값을 제공하지 않고, 옵셔널값으로 초기화하는 이니셜라이저입니다. 다음은 옵셔널 초기화 예시입니다.
class Car {
var model: String
var year: Int?
init(model: String) {
self.model = model
}
}
위의 예제에서 Car
클래스는 model
과 year
라는 두 개의 프로퍼티를 가지고 있습니다. year
프로퍼티는 옵셔널(Int?
)로 정의되어 있어서 초기값을 제공하지 않아도 됩니다.
실패 가능한 초기화
실패 가능한 초기화는 초기화가 실패하였을 때 nil
을 반환하는 이니셜라이저입니다. 이 때문에 초기화가 실패할 수 있는 조건에 대한 로직을 포함해야 합니다. 실패 가능한 초기화는 init?
키워드를 사용하여 정의합니다. 다음은 실패 가능한 초기화 예시입니다.
class Circle {
var radius: Double
init?(radius: Double) {
guard radius >= 0 else {
return nil
}
self.radius = radius
}
}
위의 예제에서 Circle
클래스는 radius
라는 프로퍼티를 가지고 있으며, 이니셜라이저에서 주어진 반지름 값이 음수이면 초기화를 실패하도록 구현하였습니다.
Swift의 초기화는 객체지향 프로그래밍에서 매우 중요한 부분이며, 안정성을 위해 이를 정확하게 이해하고 활용하는 것이 중요합니다.
더 자세한 내용은 Swift 공식 문서를 참고하세요.