속사포
swift가 스테이트먼트에 실패했습니까?예를 들어 다음 작업을 수행할 경우
var testVar = "hello"
var result = 0
switch(testVal)
{
case "one":
result = 1
case "two":
result = 1
default:
result = 3
}
케이스 "1"과 케이스 "2"에 대해 동일한 코드를 실행할 수 있습니까?
네. 다음과 같이 할 수 있습니다.
var testVal = "hello"
var result = 0
switch testVal {
case "one", "two":
result = 1
default:
result = 3
}
또는 를 사용할 수 있습니다.fallthrough
키워드:
var testVal = "hello"
var result = 0
switch testVal {
case "one":
fallthrough
case "two":
result = 1
default:
result = 3
}
var testVar = "hello"
switch(testVar) {
case "hello":
println("hello match number 1")
fallthrough
case "two":
println("two in not hello however the above fallthrough automatically always picks the case following whether there is a match or not! To me this is wrong")
default:
println("Default")
}
case "one", "two":
result = 1
브레이크 스테이트먼트는 없지만 케이스는 훨씬 유연합니다.
부록:아날로그 파일이 지적하고 있듯이, 실제로break
Swift 문구를 참조하십시오.루프로 사용할 수 있지만,switch
빈 대소문자는 사용할 수 없으므로 빈 대소문자를 입력할 필요가 없는 한 문을 사용합니다.예를 들어 다음과 같습니다.default: break
.
다음은 이해하기 쉬운 예를 제시하겠습니다.
let value = 0
switch value
{
case 0:
print(0) // print 0
fallthrough
case 1:
print(1) // print 1
case 2:
print(2) // Doesn't print
default:
print("default")
}
결론:사용하다fallthrough
이전 케이스가 다음 케이스(하나만)를 가지고 있을 때 실행한다.fallthrough
일치하는지 여부를 확인합니다.
키워드fallthrough
케이스의 말미에 의해, 찾고 있는 폴 스루 동작이 발생하며, 1개의 케이스로 복수의 값을 체크할 수 있습니다.
언급URL : https://stackoverflow.com/questions/24049024/swift-case-falling-through
'source' 카테고리의 다른 글
StaticExtension 값을 확인할 수 없습니다. (0) | 2023.04.10 |
---|---|
iOS 시뮬레이터에서 테스트하는 동안 오류 발생:부트스트랩 서버에 등록할 수 없습니다. (0) | 2023.04.10 |
x:Reference와 ElementName의 차이점은 무엇입니까? (0) | 2023.04.10 |
iPhone에서 SMS를 프로그래밍 방식으로 전송하는 방법 (0) | 2023.04.10 |
꺼내기 요청 vs 병합 요청 (0) | 2023.04.10 |