Swift의 포괄적인 스위치 설명에 대한 Noop
Swift는 완전한 스위치 명령문과 각 케이스에 실행 코드가 있어야 합니다.
'switch'의 'case' 레이블에는 하나 이상의 실행 가능한 문이 있어야 합니다.
당신이 실제로 아무것도 하고 싶지 않은 사건들을 처리할 좋은 방법을 결정한 사람이 있습니까?거기에 인쇄물()을 넣을 수는 있지만, 그것은 더러운 느낌입니다.
책에 따르면, 당신은 사용할 필요가 있습니다.break
위치:
각 사례의 범위는 비워둘 수 없습니다.따라서 각 사례 레이블의 콜론(:) 뒤에 하나 이상의 문을 포함해야 합니다.단일 사용
break
일치하는 사례의 본문에서 코드를 실행할 의도가 없는 경우 문.
를 사용할 수 있습니다.break
문:
let vegetable = "red pepper"
var vegetableComment: String = "Nothing"
switch vegetable {
case "cucumber", "watercress":
break // does nothing
case let x where x.hasSuffix("pepper"):
vegetableComment = "Is it a spicy \(x)?"
default:
vegetableComment = "Everything tastes good in soup."
}
문서에서 수정된 예제
완전한 스위치 케이스 문에서는 아무것도 수행하지 마십시오.
스위프트:
switch yourVariable {
case .someCase:
break
}
Swift UI:
switch yourVariable {
case .someCase:
EmptyView() // break does not work with ViewBuilder
}
Swift에서 중단 대신 EmptyView() 사용UI 보기는 오류를 방지합니다.
컨트롤 흐름 문이 포함된 폐쇄는 함수 작성기 ViewBuilder에서 사용할 수 없습니다.
EmptyView()는 Swift입니다.UI 표준 보기(Xcode 12, iOS 14로 테스트됨)는 직접 정의할 필요가 없습니다.
다음은 null 문에 대한 한 가지 옵션이지만 좋은 해결책은 아닐 수 있습니다.파이썬 패스와 같은 문을 찾을 수 없습니다.
{}()
스위치 케이스의 경우 브레이크가 더 나은 선택입니다.
break
에 더하여break
다른 답변에서 언급된 바와 같이, 저는 또한 보았습니다.()
no-op 문으로 사용:
switch 0 == 1 {
case true:
break
case false:
()
}
사용하다()
찾으시면break
혼란스럽거나 3자를 저장하고 싶습니다.
기본 사례에 사용하는 깨끗한 솔루션은 다음과 같습니다.
default: ()
제가 찾은 가장 깨끗한 해결책은 단순히 스위치 케이스에 당신의 마지막 진술을 기본값으로 포함시키는 것입니다.따라서 추가할 필요가 없습니다.break
또는 가능한 모든 사례를 다루면서 다른 불필요한 진술.
예:
switch myVar {
case 0:
myOtherVar = "Red"
case 1:
myOtherVar = "Blue"
default:
myOtherVar = "Green"
}
특정 사례를 확인할 수 있습니다. 그럴 필요가 없습니다.exhustive
와 함께switch
case
s
이와 같은 열거형이 있다고 가정하면,
enum Selection {
case one
case two
case three
}
var myCase = Selection.one
이렇게 확인할 수 있습니다.
if case .one = myCase {
print("one")
}
언급URL : https://stackoverflow.com/questions/24141900/noop-for-swifts-exhaustive-switch-statements
'programing' 카테고리의 다른 글
가능한 AOP 사용 사례는 무엇입니까? (0) | 2023.08.15 |
---|---|
Apache POI를 사용하여 .xls와 .xlsx 파일을 모두 읽을 수 있는 방법이 있습니까? (0) | 2023.08.15 |
jQuery가 gzip/deflate를 사용하도록 설정된 URL에 대해 AJAX를 강제로 호출할 수 있습니까? (0) | 2023.08.15 |
"바를 포함하는 foo"의 CSS 선택기? (0) | 2023.08.15 |
무작위 문자열과 무작위 16진수 숫자를 만드는 가장 가벼운 방법 (0) | 2023.08.15 |