iOS Swift(스위프트) : 옵셔널

기타|2019. 5. 21. 21:25
반응형

iOS 앱 개발을 위해 Swift(스위프트) 공부한 것을 메모한 글입니다.

 

 

옵셔널이란? nil을 사용할 수 있는 타입과 사용할 수 없는 타입을 구분하고, 사용할 수 있는 타입을 가리켜 옵셔널 타입이라고 부른다

#nil은 0이나 문자열 ""과 다름

 

사용자가 실수했을 경우 오류 대신 nil을 반환함(#자바의 예외 상황과 비슷)

#딕셔너리에 없는 키값을 호출했을 경우 등

 

#사용예 : 숫자를 문자열로 변경

let num = Int(바꿀 문자열)   // 바꿀 문자열에 "123" 숫자가 들어가면 num에 숫자가 들어가지만 "문자"가 들어가면 nil이 됨

 

옵셔널 타입만 nil을 반환할 수 있음

 

오류가 발생할 가능성이 있다면 모두 옵셔널 타입으로 정의해야 함

 

#문자열 123을 숫자로 바꾸기 : let num = Int("123")

123에 문자가 들어갔다면 nil을 반환함

 

#스위프트에서는 nil 사용에 제약을 둬서 일반 자료형은 nil값을 가질 수 없음

 

모든 기본 자료형들은 그에 대응하는 옵셔널 타입이 존재함

#Optional Int    /   Optional String

#사용  Int("Swift")  --> nil      Int("123")  --> Optional(123)

옵셔널을 써서 래핑 된것은 언래핑으로 옵셔널 타입을 해제하고 실제 값을 추출해서 사용해야 함

 

옵셔널 타입 선언과 정의

자료형 뒤에 물음표 붙이기   #var optInt : Int?   varoptStr : String?

#옵셔널 딕셔너리 : var optDic : Dictionary<String, String>?      var optDic2 : [String:String]?

#옵셔널 클래스 : var optClass : AnyObject?

선언 후 초기화 하지 않으면 자동으로 nil로 초기화 됨  #옵셔널 내부의 자료형이 아닌 옵셔널 타입 자체에 nil이 부여됨

값을 대입할떄는 일반 변수처럼 대입하면 됨

반응형