[Swift 프로그래밍] 옵셔널 (Optional)

이정훈·2022년 5월 11일
0

Swift 기본

목록 보기
5/22
post-thumbnail

본 내용은 스위프트 프로그래밍 3판 (야곰 지음) 교재를 공부한 내용을 바탕으로 작성 하였습니다.

Swift는 일반적인 변수나 상수에 nil을 대입하면 오류가 발생한다. 이때 변수나 상수를 옵셔널로 선언시 nil을 대입 할 수 있다.

옵셔널(optional)이란 무엇인가?


옵셔널의 뜻은 다음과 같다.

변수나 상수에 값이 있을 수도, 없을 수도 있음을 나타내는 표현

이제 옵셔널로 선언된 변수나 상수에 nil을 대입 할 수 있다.
옵셔널 선언은 데이터 타입에 ? 키워드를 붙여 선언한다.

var studentID: Int? = 1234567
print(studentID)

studentID = nil     //nil 대입
print(studentID)

옵셔널 추출


옵셔널값을 그대로 쓰면 결과 값이 Optional(결과값) 형태로 나온다. 이것을 결과값만 나오게 하기위하여 옵셔널 추출을 이용하는데 방법은 세 가지가 있다.

1. 강제 추출

강제 추출법은 간단하지만 런타임 오류를 일으킬 수 있는 가능성이 높은 방법이다. 방법은 옵셔널 뒤에 !키워드를 붙여서 강제 추출한다.

var myName: String? = "jeunghun"

var name_Value: String = myName!    //optional값 강제 추출
print(name_Value)

만약 옵셔널에 nil값이 있으면 런타임 오류가 발생한다.

2. 옵셔널 바인딩

옵셔널 바인딩은 if나 while문을 사용하여 조건문 안에서 사용 가능한 지역 변수 혹은 지역 상수를 생성하고 옵셔널값을 할당하여 옵셔널이 아닌 결과값을 사용 할 수 있게한다.

ar studentName: String? = "jeunghun"

if let name = studentName {
    //변수도 상관 없음
    print("학생의 이름은 \(name)입니다.")
} else {
    print("studentName == nil")
}

3. 암시적 추출 옵셔널

암시적 추출 옵셔널은 데이터 타입 뒤에 ! 키워드를 사용하여 옵셔널을 선언한다.
암시적 추출 옵셔널로 선언한 변수나 상수는 일반적인 변수나 상수처럼 직접적으로 접근하여 사용이 가능하다.
(다만, nil 값이 할당 되어 있을때는 접근시 오류 발생)

var personName: String! = "jeunghun"
print(personName)
personName = nil    //암시적 옵셔널 타입도 옵셔널 이므로 nil 사용가능
print(personName)
profile
새롭게 알게된 것을 기록하는 공간

0개의 댓글