[swift] 옵셔널 체이닝을 사용하여 값 추출하기

옵셔널 타입은 Swift에서 매우 유용한 기능 중 하나입니다. 하지만 옵셔널 변수에 저장된 값에 접근하려면 각 변수마다 nil 체크를 해주어야 하는 번거로움이 있습니다. 이러한 불편함을 해소하기 위해 옵셔널 체이닝을 사용할 수 있습니다.

옵셔널 체이닝은 옵셔널 변수에서 값에 접근할 때마다 nil 체크를 거치지 않고 간편하게 값을 추출할 수 있는 방식입니다. 이를테면, A라는 변수에 B라는 옵셔널 타입의 변수가 있다고 가정해봅시다. A.B.C.D와 같이 옵셔널 체인을 사용하여 다중 옵셔널 변수에 접근할 수 있습니다. 만약 중간에 옵셔널 변수 중 하나라도 nil이라면 nil을 반환합니다.

struct Student {
    var name: String
    var grade: Int
    var address: Address?
}

struct Address {
    var city: String
    var zipcode: String
}

let student1 = Student(name: "John", grade: 3, address: Address(city: "Seoul", zipcode: "12345"))
let student2 = Student(name: "Jane", grade: 4, address: nil)

let city1 = student1.address?.city   // "Seoul"
let zipcode1 = student1.address?.zipcode   // "12345"

let city2 = student2.address?.city   // nil
let zipcode2 = student2.address?.zipcode   // nil

위 예제에서 student1의 address 변수에는 옵셔널 체이닝을 통해 city와 zipcode에 접근할 수 있습니다. 그 결과로 “Seoul”과 “12345”가 각각 추출됩니다. 반면, student2의 address 변수에는 nil이 저장되어 있기 때문에 옵셔널 체이닝을 사용해도 모든 값이 nil로 반환됩니다.

옵셔널 체이닝은 값이 nil인지 아닌지를 확인하여 안전하게 접근할 수 있도록 해줍니다. 따라서 코드를 간결하게 작성할 수 있고, nil에 대한 체크로 인한 에러를 방지할 수 있습니다.

더 자세한 내용은 Swift 공식 문서를 참고하세요.