[swift] guard 문을 사용하여 옵셔널 체이닝을 할 수 있나요?

일반적으로, guard 문은 옵셔널 값을 추출하고 이 값을 사용할 수 있도록 unwrapping하는 데 사용됩니다. 옵셔널 체이닝은 옵셔널 값 뒤에 “?”를 붙여서 사용되며, 해당 옵셔널 값이 nil일 때 표현식 전체가 nil을 반환합니다.

아래의 예제에서는 guard 문을 사용하여 옵셔널 값이 nil이 아닌지 확인하고, 옵셔널 체이닝을 통해 안전하게 속성에 접근합니다.

struct Person {
    var name: String
}

func printPersonName(person: Person?) {
    guard let unwrappedPerson = person else {
        print("Person is nil")
        return
    }
    
    print("Person's name: \(unwrappedPerson.name)")
}

// 호출
let person: Person? = Person(name: "Alice")
printPersonName(person: person)  // 출력: "Person's name: Alice"
printPersonName(person: nil)      // 출력: "Person is nil"

위의 예제에서는 guard 문을 사용하여 person이 nil이 아닌지 확인하고, nil이 아닌 경우에만 속성에 안전하게 접근합니다. 이렇게 함으로써 옵셔널 값을 안전하게 처리할 수 있습니다.

또한, 옵셔널 체이닝을 통해 옵셔널 값을 처리하는 방법에 대한 추가 정보는 Swift 공식 문서를 참조하실 수 있습니다.