1. 옵셔널 타입의 기본개념
<스위프트에서 옵셔널 타입을 사용하는 이유>
값이 없는 변수에 접근을 한다면 에러가 발생 >> 실행이 멈추게 되는것을 방지하기 위해 사용된다.
<옵셔널타입의 이해>
옵셔널타입은 변수명 뒤에 ? 를 붙여서 사용한다.
값이 없음을 nil로 표현하며 여기서 nil은 실제 값이 없는것이 아니고, "값이 없음을 의미한다."
옵셔널타입과 논옵셔널타입은 서로 다른 타입임을 인지해야 한다.
2. 옵셔널값의 추출 방법
<옵셔널타입 추출>
1) 강제추출
: nil이아닌 값이 있다고 확신하고 강제로 추출한다. num!
웬만한 경우엔 절대 비추
2) nil인지 아닌지 확인 후 강제추출
: if문을 통해 nil이 아님을 확인 후 강제추출
if num != nil{
print(num!)
}
3) 옵셔널바인딩
: 바인딩(상수나 변수에 대입)이 되는 경우만 특정 작업을 하겠다는 의미 >> nill은 논옵셔널타입의 상수나 변수에 담길 수 없음을 이용
if let name = optionalName{
print(name)
}
4) Nil -Coalescing
: 옵셔널 표현식 뒤에 기본값을 제시해서, 옵셔널의 가능성을 없앤다.
optionalName ?? "홍길동"
여기서 optionalName이 옵셔널타입이면 옵셔널을 Unwrapping할것이고
optionalName이 nil일 경우 "홍길동"을 사용한다.
접근연산자 사용시) 옵셔널체이닝
표현식 자체가 옵셔널의 가능성이 있다는 것을 표현. 체이닝의 결과는 항상 옵셔널
옵셔널 타입에 대해 접근연산자는 항상 ?를 붙인다.
Dog?.bori?.age
이 포스팅은 인프런 앨런강사님의 스위프트를 참고하여 작성하였습니다.
'swift문법' 카테고리의 다른 글
| [Swift] Part10_열거형 (0) | 2022.08.11 |
|---|---|
| [Swift] Part9_컬렉션 (0) | 2022.08.11 |
| [Swift] Part7_함수 (0) | 2022.08.11 |
| [Swift] Part6_반복문 (0) | 2022.08.11 |
| [Swift] Part5_삼항연산자와 범위연산자 (0) | 2022.08.11 |