- 옵셔널(optional)타입은 스위프트에 특징중인 타입으로 nil(임시값)을 포함할 수 있도록 타입입니다.
swift에서는 일반적인 데이터 타입의 경우 값이 비어있는 것은 오류로 처리합니다. 이러한 부분에서 값이 없는 경우 nil(임시값)을 부여하여 오류를 줄여주는 타입입니다.
var number: Int?
// 타입 뒤에 "?"를 붙여 옵셔널 타입 선언
// 아무값도 부여하지 않을 시 nil값으로 처리
print(number) // 출력 결과 : Optional(nil)
var number1: Int = 111
var number2: Int? = 222
// 옵셔널 타입을 출력 시 nil이 아닐 경우에는 Optional(해당값) 형태로 출력
print(number1) // 출력 결과 : 111
print(number2) // 출력 결과 : Optional(222)
var number1: Int = 111
var number2: Int? = 222
var number3: Int? = 333
number2 = number1 // Int값 >> Int?(정수 옵셔널타입)에 대입
print(number2) // 출력 결과 : Optional(111)
//반대로 옵셔널 값을 일반 데이터 타입에 대입은 불가능
var sum: Int? = number2 + number3 // 오류!!!
- 옵셔널 타입 출력 결과 : Optinonal(해당값)
- 옵셔널 타입 = 기본 타입 --> 대입 가능 -> 값이 옵셔널 타입으로 기록 됨
- 옵셔널 타입끼리 연산 불가능 (언래핑, 바인딩 필수!!)
옵셔널 추출 방법 내용은 아래 참고하세요!
[Swift]옵셔널 추출하기(Optional Unwrapping)