mj@home:~$

Swift3 입문

?와 !의 차이

?

optional-type

  • nil이 될 수 있는 데이터 형태. nil: 어떤 타입이든 데이터가 없으면 nil이다.
  • non-optional 데이터는 nil이 될 수 없기 때문에 무조건 선언시 초기화가 필요하다.

!

forced-unwrapping-operator

  • Optional-type에 값이 있음을 명시적으로 알려주는 표시

DownCasting

as?

조건부 다운 케스팅

  • 결과값은 Optional-type
  • 원하는 형태로 케스팅이 불가능 할 경우 nil을 return한다.

as!

강제 다운 케스팅

  • 다운 케스팅 + 강제 unwrapping
  • 다운 케스팅 실패시에 실시간으로 오류를 반환한다.