[swift] 옵셔널 체이닝을 사용한 옵셔널 타입 인스턴스 생성

옵셔널 체이닝을 사용하여 옵셔널 타입의 인스턴스를 생성하려면 다음과 같이 작성할 수 있습니다.

class Person {
    var residence: Residence?
}

class Residence {
    var address: Address?
}

class Address {
    var city: String

    init(city: String) {
        self.city = city
    }
}

let person = Person()

// 옵셔널 체이닝을 사용하여 옵셔널 타입의 인스턴스 생성
let city = person.residence?.address?.city

위의 예제에서 Person 클래스는 residence 프로퍼티를 옵셔널 타입으로 선언하고, Residence 클래스는 address 프로퍼티를 옵셔널 타입으로 선언했습니다. 마지막으로 Address 클래스는 실제 값을 가지는 city 프로퍼티를 정의했습니다.

let city = person.residence?.address?.city 라인에서 옵셔널 체이닝을 사용하여 person 인스턴스의 residence 프로퍼티를 통해 address 프로퍼티 및 city 프로퍼티에 접근하고, 결과적으로 city 변수에는 String 타입의 도시명이 옵셔널 타입으로 할당됩니다.

옵셔널 체이닝을 통해 각각의 프로퍼티에 접근할 때마다 nil 값이 있을 수 있으므로 안전하게 옵셔널 값을 다룰 수 있습니다.

참고 문헌: Swift 공식 문서 - 옵셔널 체이닝