[Swift] 옵셔널(Optional)이란?

Oni·2023년 10월 30일
0

기술면접

목록 보기
7/13
post-thumbnail

1. 옵셔널(Optional)

옵셔널(Optional)은 Swift 프로그래밍 언어에서 값이 없을 수 있는 상태를 나타내기 위한 특별한 형태의 데이터 타입이다.
옵셔널은 변수 또는 상수가 값을 갖고 있을 수도 있고, 갖고 있지 않을 수도 있다는 것을 나타낸다. 즉, 옵셔널은 값을 가질 수도 있고, nil(값이 없음)일 수도 있는 변수나 상수를 정의할 때 사용된다.

2. 옵셔널 선언

옵셔널을 선언할 때는 해당 데이터 타입 뒤에 물음표(?)를 붙인다. 예를 들어, Int 타입의 옵셔널을 선언하려면 Int?로 표현한다.

3. 주요 특징 및 사용법

3-1. 값이 없음

옵셔널 변수 또는 상수는 값이 없음을 나타내기 위해 nil로 초기화될 수 있다.

var name: String? = nil

3-2. 옵셔널 바인딩(Optional Binding)

옵셔널에 값이 있는지 확인하고, 값이 있다면 안전하게 추출하기 위해 옵셔널 바인딩을 사용할 수 있다.

var name: String? = "John"

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

3-3. 강제 언래핑(Force Unwrapping)

옵셔널의 값을 강제로 추출하고자 할 때는 옵셔널 변수 뒤에 느낌표(!)를 사용하여 강제 언래핑을 수행할 수 있다. 이 때, 만약 옵셔널이 nil인 상태에서 강제 언래핑을 시도하면 런타임 오류가 발생할 수 있으므로 주의해야 한다.

var name: String? = "John"
let unwrappedName = name!

3-4. 옵셔널 체이닝(Optional Chaining)

옵셔널이 연속적으로 연결된 상태에서 프로퍼티나 메서드를 호출하고자 할 때, 옵셔널 체이닝을 사용하여 안전하게 호출할 수 있다.

let length = person?.address?.city?.length

옵셔널은 Swift의 중요한 기능 중 하나로, 값이 있을 수도 없을 수도 있는 상황을 다룰 때 매우 유용하게 활용된다. 옵셔널을 올바르게 사용함으로써 안전성을 유지하고 런타임 오류를 방지할 수 있다.

profile
하지만 나는 끝까지 살아남을 거야!

0개의 댓글