HIT해
[Swift 기초문법 - 64] case let 옵셔널 패턴 본문
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
'Swift > Swift 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 66] defer (0) | 2024.08.21 |
---|---|
[Swift 기초문법 - 65] Any switch case let (0) | 2024.08.21 |
[Swift 기초문법 - 63] 값을 동반한 enum (0) | 2024.08.21 |
[Swift 기초문법 - 62] Enum CaseIterable (0) | 2024.08.21 |
[Swift 기초문법 - 61] get Computed Property (0) | 2024.08.21 |