[iOS][Swift] 옵셔널(Optional)과 옵셔널 바인딩(Optional Binding) 알아보기

Jay·2023년 8월 7일
0

iOS

목록 보기
14/47

Swift의 옵셔널(Optional)은 언어의 중심적인 특징 중 하나로, 변수나 상수가 값이 없을 수 있다는 것을 표현합니다. 이 글에서는 옵셔널, nil, 그리고 옵셔널을 다루는 다양한 방법에 대해 살펴보겠습니다.

옵셔널(Optional)

옵셔널은 변수가 nil이 될 수 있음을 의미합니다. nil은 '값이 없음'을 나타내며, Swift에서는 변수가 nil일 수 있는 경우 해당 변수를 옵셔널로 선언해야 합니다.

var name: String? // 옵셔널 문자열
name = nil        // nil 할당 가능

옵셔널 바인딩: Optional Binding

옵셔널 바인딩은 옵셔널의 값을 안전하게 추출하는 과정입니다.

1. if-let과 guard-let

if,guard문을 통해 nil이 아님을 먼저 확인 후, 강제 추출 (에러 가능성X)

if let unwrappedName = name {
    print("Name is \(unwrappedName)")
} else {
    print("Name is nil")
}

guard let unwrappedName = name else {
    return
}
print("Name is \(unwrappedName)")

2. 강제 추출 (Forced Unwrapping)

nil이 아닌 값이 있다는 것을 확신하고 강제로 값을 추출합니다.
nil이 아닌 것이 확실한 경우에만 사용해야 합니다.

let unwrappedName = name!

3. 닐 코어레싱(Nil Coalescing)

옵셔널 표현식 뒤에 기본값을 제시헤서, 옵셔널의 가능성을 없앱니다.
옵셔널이 nil일 때 사용할 기본값을 지정합니다.

let unwrappedName = name ?? "Default Name"

4. nil 확인 후 강제 추출

강제 언래핑 전에 옵셔널이 nil인지 확인하여 안전하게 값을 추출할 수 있는 방법도 있습니다.

if name != nil {
    let unwrappedName = name!
    print("Name is \(unwrappedName)")
} else {
    print("Name is nil")
}

이 방법은 옵셔널이 nil인지 확인 후에, 안전하게 강제 언래핑을 수행하기 때문에 옵셔널이 nil이 아님을 확신할 수 있을 때 사용할 수 있습니다.

profile
Junior Developer

0개의 댓글