let number = 31
//0~100까지 범위가 맞다면
if 0...100 ~= number {
print("\(number)은 0~100 안에 드는 수에요!")
}
주로 Http 상태코드 체크에 자주 쓰인다.
200...299 ~= statusCode 면 성공이런 식으로
// 기존에 쓰던 방식
switch result {
case .success(let data):
if data.count > 100 {
completion(data)
} else {
print("fail")
}
case .failure(let error):
print(error)
}
// case let 방식
switch result {
case let .success(data) where data.count > 100:
completion(data)
case let .failure(error):
print(error)
default:
print("fail")
}
where 절을 붙일 수 있다는 장점이 있다.
솔직히 개인적으로 가독성은 기존에 쓰던 방식이 더 좋은 듯 합니다.
if case let .success(data) = result, data.count > 100 { ... }
guard case let .success(data) = result, data.count > 100 { /* fail */ }
굉장히 유용한 문법입니다.
switch 문으로 모든 케이스 줄줄이 체크할 필요 없이 특정 케이스만 체크할 때 주로 사용됩니다.
let foods: [Food] = [.gimbob, .gimbob, .hamburgar, .pizza, .hamburgar]
for case let food in foods where food == .hamburgar {
print(food) // 햄버거만 체크
}
쓸만한 문법입니다.
enum 배열을 처리할 때 아주아주 편한 방법.