• Optionals
    • Swift에서 "값이 없음"을 처리하는 새로운 개념
    • nil 값을 가질 수 있는 참조 형식과 값 형식을 옵셔널 형식(Optional Type)이라고 한다.
    • 기본적으로 nil로 초기화 되고, 언제든지 필요한 값을 할당하거나 nil을 재할당 할 수 있음
    • 반대로  nil값을 가질 수 없는 나머지 형식들은 비옵셔널 형식(Non-Optional Type)이라고 한다.
    • 예) 
      • var optionalNum: Int? = nil
      • var optionalStr:String? = "hello"
    • 옵셔널 형식의 값을 사용할 때는 변수명 뒤에 느낌표를 붙여 강제 추출(Forced Unwrapping)연산사를 사용할 수 있다
    • 예)
      • var userName: String? = getName();
      • if userName != nil { println("\(userName!)") }
    • 옵셔널 형식이 항상 유효한 값을 가지는 경우에는 자료형 뒤에 물음표(?) 대신 느낌표(!)를 붙여서 암시적으로 추출되는 옵셔널 형식(Implicitly Unwrapped Optionals)으로 선언할 수 있다.
    • 값이 nil인 경우 런타임 오류가 발생
    • 예)
      • var userName: String!= "kim"
    • 옵셔널 바인딩(Optional Binding)은 nil테스트와 값 추출을 한번의 동작으로 처리해주는 패턴으로 if let 문법을 사용
    • 예)
      • if let userName = getName() { ... }
    • if 문 내에서 값의 조작이 필요할 경우 if var로 선언 가능
    • Nil Coalescing 연산자는 옵셔널 형식에 저장된 값을 추출하거나, 옵셔널 형식이 nil인 경우 사용할 기본값을 지정 한다.
    • 이항 연산자로 a ?? b 와 같은 형태로 사용
    • 왼쪽 피연자에는 옵셔널 형식의 데이터 또는 표현식
    • 오른쪽에는 피연산자가 nil일 경우 리턴할 기본값 또는 표현식 (함수호출이나 연산자가 될 수도 있다)
    • 예)
      • var userName = getName() ?? "Jun"
    • Optional Chaining 정리 중..


'Swift > Swift Basic (2.0Base)' 카테고리의 다른 글

함수  (0) 2015.01.08
튜플(Tuples)  (0) 2014.12.24
로그 출력  (0) 2014.12.23
변수와 상수  (0) 2014.12.23
Swift특징  (0) 2014.12.23

+ Recent posts