관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 조건문(if, switch)에서의 optional unwrapping, case .none 본문

iOS 기본 (swift)

[iOS - swift] 조건문(if, switch)에서의 optional unwrapping, case .none

jake-kim 2021. 8. 12. 23:53

if 문에서 제공하는 unwrapping

  • 조건문에서 제공하는 unwrapping을 사용하지 않은 경우
var b1: Bool? = true

if let unwrppedB1 = b1, unwrppedB1 {
    print("true b1")
} else {
    print("false b1")
}

// true b1
  • 조건문에서 제공하는 unwrapping 사용한 경우
    • 바로 b1 == true로 optional 타입이라도 자동으로 unwrapping
if b1 == true {
    print("true1 b1")
} else {
    print("false1 b2")
}
  • Bool타입이 아닌 다른 타입도 적용 가능
var integer1: Int? = 1

if integer1 == 1 {
    print("integer1 is one")
} else {
    print("integer1 isn't one")
}

// integer1 is one
  • 값이 nil이면 else 부분 실행
var b2: Bool? = nil

if b2 == true {
    print("true2")
} else {
    print("false2")
}

// false2

switch문에서 제공하는 unwrapping

  • switch문에 일반적인 case, default말고 case .none타입이 존재: nil일 경우 .none으로 분기
var integer1: Int? = 1

switch integer1 {
case 1:
    print("value is one")
case .none:
    print("value is nil")
default:
    print("value isn't one")
}

// integer1 is one
  • 값이 nil인 경우
var integer1: Int? = nil

switch integer1 {
case 1:
    print("value is one")
case .none:
    print("value is nil")
default:
    print("value isn't one")
}

// value is nil
Comments