밤에 쓴 코드

Swift) 옵셔널 - Optional 본문

Swift

Swift) 옵셔널 - Optional

붱이🦉 2019. 4. 18. 14:13

Optional


  • 변수에 값이 존재하지 않을 수도 있다는 것을 명시한다.

    다른 말로 하면 옵셔널이 아닌 변수는 무조건 값을 가져야한다.

  • 값이 꼭 필요한 변수에는 옵셔널이 아닌 타입으로 선언함으로서 , 사전에 nil이 들어오는 걸 막을 수 있다.

  • 또 , Optional 로 선언함으로서 , nil이 들어올 수 있으니 , 대처가 필요하다는 것을 프로그래머에게 인지 시켜줄 수 도 있다.

Optional 은 제네릭 타입을 지원하는 열거형이다.

enum Optional<T>{
    case .some // 값이 존재하는 경우 
    case .none // nil 인 경우
    }

Optional<Int> = Int? // 동일한 표현이다
  • optional.some/.none 두가지경우 중 하나를 를 무조건적으로 가지는 열거형 이다.

Optional 에서 값을 얻어오기

    struct Box{
        var item
    }
    var mysteryBox : Box?
  • Optional Binding : 옵셔널 바인딩

          guard let fullBox = mysteryBox as? Box else {
               return // 값의 부재 nil
               } 
          fullBox.item // 값이 존재하는 지 확인후 Unwrapping
  • Optional Chaining : 옵셔널 체이닝

        mysteryBox?.item // mysteryBox 유효하면 item에 접근한다.
  • Unconditional Unwrapping: 강제추출

          mysteryBox!.item  // 값의 유무를 확인하지 않고 강제적으로 Unwrapping한다

'Swift' 카테고리의 다른 글

Swift) POP - Protocol Oriented Programming  (1) 2019.04.25
Swift) Extension - 익스텐션  (0) 2019.04.25
Swift) 프로토콜 - Protocol  (0) 2019.04.11
Swift) 구조체/변수/상수  (0) 2019.04.08
Swift) 열거형 - Enumeration  (0) 2019.04.05
Comments