1월 4일 (목)
A type that represents either a wrapped value or the absence of a value.
옵셔널은 타입이다. 감싸고 있는 값(Optional(값) 또는 "부재" 값 (nil 이라는 값을 지칭하는 것 같다.) 을 표현하는 타입이다.
(있을수도? 없을수도? ~ )
var testNil: Int = nil
입력해준다면, 'nil' cannot initalize specified type 'Int' 라는 메시지가 나온다. Optional 타입을 적용 시켜주기 위해서는 다음과 같이 타입 뒤에 ? 을 붙인다.
var testNil: Int? = nil
@frozen
enum Optional<Wrapped>
Optional이라는 것을 사전과제 작성을 하다가, 사용자 입력 받는 함수인 ReadLine() 덕에 알게 되었다.
오늘 학습활동을 해보니, Optional이라는 개념도 제대로 잡아야 할 것 같다. 이유는 Optional 이라는 타입을 명확히 이해하고 사용지 않는다면, 앱이 종료가 되는 일이 발생될 수 있기 때문이다.
! 를 이용한 "Unconditional Unwrapping"을 사전과제에는 사용을 했었는데, 지양을 해야하는 이유도 알게 되었다. 이유는.. 사용자가 nil 값이나, 예외 값을 넣는 경우, 에러가 발생하기 때문이다.