[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 공식 문서를 참고하세요.