HIT해

[Swift 기초문법 - 64] case let 옵셔널 패턴 본문

Swift/Swift 기초문법

[Swift 기초문법 - 64] case let 옵셔널 패턴

힛해 2024. 8. 21. 00:47
728x90

case let 옵셔널 패턴이란?

Swift 에서는 옵셔널 타입을 안전하게 처리하기 위한 여러가지 방법을 제공하는데 그중 하나가 case let 을 사용하는 옵셔널 패턴이다.

이 패턴은 switch 문이나 if case 구문에서 옵셔널 값의 추출과 조건을 한번에 처리할 수 있게 해준다.

 

기본 개념

case let 옵셔널 패턴은 옵셔널 값이 nil 인지 아닌지 확인하고, 만약 nil이 아니라면 그 값을 추출하여 사용할 수 있도록 한다.

이를 통해 옵셔널 바인딩과 비슷한 기능을 수행할 수 있다.

 

switch 구문에서의 사용

let someValue: Int? = 42

switch someValue {
case let value?:
    print("The value is \(value)")
case nil:
    print("The value is nil")
}

 

위 코드에서 case let value? 는 옵셔널 값이 nil 이 아닌 경우 그 값을 value에 바인딩한다.

  • case let value? : 옵셔널이 nil 이 아니면 값을 추출하여 calue로 바인딩
  • case nil : 옵셔널이 nil 인 경우

 

if case let 구문에서의 사용

let someValue: Int? = 42

if case let value? = someValue {
    print("The value is \(value)")
} else {
    print("The value is nil")
}

 

여기서 if case let value? = someVaulue 는 옵셔널 값이 nil이 아닌 경우 그 값을 value에 바인딩 하고 조건이 참인 경우 코드 블록을 실행한다.

 

if case let 과 guard case let 의 비교

if case let 과 guard case let 은 유사하게 작동하지만 guard 구문은 특정 조건을 만족하지 않을 때 블록을 빠져나가는데 사용한다.

func checkValue(_ value: Int?) {
    guard case let number? = value else {
        print("The value is nil")
        return
    }
    print("The value is \(number)")
}

checkValue(42)  // 출력: The value is 42
checkValue(nil) // 출력: The value is nil