티스토리 뷰

Swift의 `@unknown` 키워드를 많이 쓰시나요?

최근 기초를 다지면서 '이런 키워드도 있었지..!' 하고 글을 작성해봅니다.

 

먼저 회사에서 제가 아래와 같이 코드를 짰다고 가정해볼게요.

enum Menu {
	case chicken
    case pizza
}

let dinner: Menu = .chicken

switch dinner {
case .chicken:
	print("치킨")
case .pizza:
	print("피자")
case _: // `case default`와 같은 표현!
	print("메뉴가 뭔가요?")
}

Menu 라는 열거형은 값이 정해져 있기 때문에

사실 현재 작성된 case 를 모두 정의해주기만 하면 switch 문에서는 컴파일 오류가 발생하지는 않습니다.

그래도 코드는 언제든 추가될 수 있으니까 와일드 카드(_)로 처리해주었습니다.

(Case will never be executed 라는 경고문이 보이긴 하겠지만요)

 

만약 동료가 메뉴를 추가한다고 해도 경고나 오류는 따로 없겠죠!

enum Menu {
	case chicken
    case pizza
    case hamburger // 동료가 추가한 코드
}

 

그런데 switch 문을 통과할때 "메뉴가 뭔가요?" 부분이 유저에게 전달된다면 문제가 되겠네요.

let dinner: Menu = .chicken

switch dinner {
case .chicken:
	print("치킨")
case .pizza:
	print("피자")
@unknown case _:
	print("메뉴가 뭔가요?")
}

 

이 때 @unknwon 키워드를 사용하면 어떻게 될까요?

 

 

열거형의 모든 case 에 대응하지 않고 있다는 컴파일의 경고를 볼 수 있습니다!

그럼 유저에게 전달되는 예외를 동료도 알 수 있겠죠?!

이상! 간단한 @unknown 키워드의 사용 예시를 기록해보았습니다! :)

'Apple > Swift' 카테고리의 다른 글

[Swift 5.9] Noncopyable structs and enums  (0) 2024.01.11
[Swift 5.9] Macro  (0) 2024.01.11
[Swift 5.9] Value and Type Parameter Packs  (0) 2024.01.09
[Swift 5.9] if and switch expressions  (1) 2024.01.08
Swift의 집합 개념과 연산  (0) 2022.09.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함