안녕하십니까 공부하는 개발자 입니다.
swift강의를 듣는 도중 정리를 해놔야 할 것 같아
정리를 시도합니다. 조금 길어지면 글을 두개로 쪼개서 할 것 같습니다.
Optional이란 자바에서 쓰는 Optional과 같은 역할인것 같습니다.
결국 스위프트에서 nil(자바에서 null)의 오류를 없애고자 만들어낸 타입이라 볼 수 있습니다.
nil이란 아무런 값도 없는 상태를 말합니다.
이런 nil이 만약 변수에 담기려는 순간 컴파일 에러가나타나고 맙니다
이러한 nil를 이용하기 위해서 Optional Type이 등장하게 됩니다.
Optional 타입의 선언의 경우
TypeName? 으로 선언이 됩니다.
ex) var str: String? ="Hello"
optional의 경우에는 그냥 호출을 한다면 Optional(value)로 출력이 되기때문에 unwrapping과정을 거쳐야합니다.
unwrapping을 하는 것은 몇가지 방법이 있는데
그중 하나가 Forced Unwrapping입니다.Forced Unwrapping : 강제적으로 Optional타입을 일반 타입으로 변환 시킵니다.사용법은 OptionalExpression!로 사용 할 수 있습니다.다만 강제적인 unwrapping의 경우에는 nil이 들어오는 순간 컴파일 에러가 나와 프로그램이 멈춰버립니다.그렇기 때문에
var str: String? = "Hello"if str != nil{ print(str!)}
이러한 형식으로 유효성검사를 진행해줘야 합니다.다만 이러한 형식도 불안전하기 때문에 다음 글에 소개할 Optional Bindding을 더 많이 사용합니다.