[swift] 옵셔널 연산자

옵셔널은 Swift 언어의 중요한 특징 중 하나입니다. 옵셔널은 “값이 있을 수도 있고, 없을 수도 있다”는 것을 나타내는데 사용됩니다. 이렇게 값의 존재 유무를 표현하기 위해 옵셔널 연산자가 사용됩니다.

옵셔널 연산자의 종류

1. 옵셔널 해제 연산자 ! (Force Unwrapping Operator)

옵셔널 값 뒤에 !를 붙여 사용합니다. 이것은 “이 옵셔널 변수는 절대로 nil이 아니다” 라는 것을 개발자가 명시적으로 보장한다는 뜻입니다.

let optionalName: String? = "Alice"
let unwrappedName: String = optionalName!
print(unwrappedName) // "Alice"

2. 옵셔널 바인딩 - 옵셔널 묶음 연산자 if letguard let

값의 존재 여부를 확인하고 안전하게 옵셔널 값을 추출하거나 처리하는 방법입니다.

var optionalName: String? = "Bob"
if let name = optionalName {
    print(name) // "Bob"
}

func greet(_ name: String?) {
    guard let unwrappedName = name else {
        print("Hello, guest!")
        return
    }
    print("Hello, \(unwrappedName)!")
}
greet(optionalName) // "Hello, Bob!"

3. 옵셔널 체이닝 연산자 ? (Optional Chaining Operator)

옵셔널 값이 nil인 경우, 연산자 실행을 멈추고 nil을 반환합니다.

let managerName: String? = employee.department?.manager?.name
// 위 코드에서 department, manager, name 중 하나라도 nil이면 managerName은 nil을 가집니다.

결론

옵셔널 연산자는 Swift에서 안전하고 효율적인 코드를 작성하는 데 도움을 줍니다. 값의 존재 여부를 명시적으로 다루어 안정성을 보장하고, 코드의 신뢰도를 높이는 데 도움이 됩니다.

참고 자료: The Swift Programming Language - Optional Chaining