[swift] 옵셔널 체이닝을 사용한 옵셔널 멤버 호출

Swift에서는 옵셔널 체이닝을 사용하여 옵셔널 값에 접근하고 호출하는 기능을 제공합니다. 이를 통해 옵셔널 값이 nil인 경우에도 안전하게 메서드 호출이 가능합니다.

옵셔널 멤버 호출

옵셔널 멤버 호출은 옵셔널 값의 프로퍼티나 메서드를 호출하는 방법을 말합니다. 이때 옵셔널 값이 nil이면 호출된 멤버도 nil을 반환합니다.

예를 들어, Person 구조체가 있고 그 안에 address 프로퍼티가 Optional 타입일 경우, 옵셔널 멤버 호출을 사용하여 안전하게 address 프로퍼티에 접근할 수 있습니다.

struct Person {
    var name: String
    var address: String?
}

let john = Person(name: "John", address: "123 Street")
let address = john.address

위의 예시에서 john.address의 값은 String? 타입이므로 옵셔널 값으로 취급됩니다. 여기에 옵셔널 체이닝을 사용하여 옵셔널 값에 접근할 수 있습니다.

옵셔널 체이닝

옵셔널 체이닝은 옵셔널 값에 접근하여 연속적으로 멤버를 호출하는 과정을 말합니다. 이를 통해 중첩된 옵셔널 값에 안전하게 접근할 수 있습니다.

옵셔널 체이닝은 옵셔널 값 뒤에 물음표(?)를 사용하여 표현합니다. 예를 들어, 위의 예제에서 Person 구조체가 아니라 Person? 타입일 경우 옵셔널 체이닝을 사용하여 address 프로퍼티에 접근할 수 있습니다.

let person: Person? = Person(name: "John", address: "123 Street")
let personAddress = person?.address

위의 예시에서 person?.address를 통해 person이 nil이 아닌 경우에만 address 프로퍼티에 안전하게 접근할 수 있습니다.

옵셔널 체이닝은 nil 일지라도 에러를 발생시키지 않고 안전하게 옵셔널값에 접근할 수 있는 강력한 기능입니다. 이를 통해 코드의 안정성을 높일 수 있으며 옵셔널 값에 대한 처리를 간편하게 수행할 수 있습니다.

내부링크: [swift] 옵셔널 타입 [swift] 옵셔널 해제 [swift] 옵셔널 강제 해제 [swift] 네이밍 규칙 [swift] 클로저 [swift] 옵셔널 매핑 [swift] 옵셔널 플랫맵