[swift] 옵셔널 체이닝을 사용한 옵셔널 타입 프로퍼티 접근

옵셔널 체이닝은 Swift 언어에서 옵셔널 타입을 안전하게 다룰 수 있는 기능 중 하나이다. 이를 통해 옵셔널 타입의 프로퍼티에 안전하게 접근할 수 있다.

옵셔널 타입 프로퍼티

옵셔널 타입 프로퍼티는 해당 프로퍼티가 nil 값을 가질 수 있는 경우에 사용된다. 보통 객체지향 프로그래밍에서 어떤 객체의 속성이나 메서드를 사용할 때, 해당 객체가 nil인지 여부를 체크할 필요가 있다.

옵셔널 체이닝 구문

옵셔널 체이닝은 옵셔널 타입의 프로퍼티에 안전하게 접근하기 위한 기능으로, ? 연산자를 이용한다.

class Person {
    var residence: Residence?
}

class Residence {
    var address: Address?
}

class Address {
    var buildingNumber: String
    var street: String
    var city: String
}

위의 예시와 같이 Person 클래스에는 residence 프로퍼티가 옵셔널 타입으로 선언되어 있다. Residence 클래스에는 address 프로퍼티가 옵셔널 타입으로 선언되어 있고, Address 클래스에는 buildingNumber, street, city 프로퍼티가 옵셔널 타입이 아닌 일반 프로퍼티로 선언되어 있다.

옵셔널 체이닝을 이용하여 Person 객체의 residenceaddressbuildingNumber에 안전하게 접근하기 위해서는 아래와 같이 코드를 작성한다.

let person = Person()
if let buildingNumber = person.residence?.address?.buildingNumber {
    print("Building number is \(buildingNumber)")
} else {
    print("Unable to retrieve the building number")
}

위의 코드에서 person.residence?.address?.buildingNumber의 경우, 중간에 어떤 값이 nil이라도 안전하게 접근할 수 있도록 옵셔널 체이닝을 사용하고 있다.

옵셔널 체이닝의 반환 값

옵셔널 체이닝의 각 단계에서 nil 값을 가지고 있는 경우, 전체 표현식의 값은 nil이 된다. 따라서 옵셔널 체이닝으로 접근한 결과 값은 반드시 옵셔널 타입이 된다.

옵셔널 체이닝을 통해 안전하게 옵셔널 타입의 프로퍼티에 접근할 수 있다. 이를 통해 코드의 안전성과 가독성을 높일 수 있으며, 옵셔널 값에 대한 다양한 처리를 더욱 효율적으로 할 수 있게 된다.

참고 자료