2014-12-08 3 views
1

String으로 알고있는 값을 가진 상황을 상상해보십시오. 그러나이 문자열은 단일 문자 또는 복수 문자이거나 숫자 일 수 있습니다. 이제이 값에 대해 switch 문을 설정하려고합니다. 임의의 숫자에 대해 동일한 코드 블록을 실행하려고하지만, 모든 경우를 포착하기 위해 따옴표로 한자리 숫자를 모두 써야 할 필요는 없습니다.case 문에서 문자열 범위를 덮습니까?

이 방법이 효과적이지만 가능한 모든 자릿수를 쓸 필요가 없도록 어떻게 정리할 수 있습니까?

let str = "8" 
switch str { 
    case "a": println("is a") 
    case "gb": println("is gb") 
    case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" : println("is a digit") 
} 

당신은에 대한 문자열과 테스트 케이스 문에 실제로 INT의 범위를 만들 수 있습니다, 또는 당신은 당신이 경우에 전환하는 값을 변경할 수 있습니까? 예를 들어 String을 Int로 변환 할 수 있고 0-9 범위에 있으면 원래 String이 숫자임을 알 수 있습니다. case str.toInt() in 0...9과 같은 것? 위의 코드보다 친숙하지는 않지만 한 가지 해결책은 숫자 배열을 만들어 str이 배열에 있는지 테스트하는 것입니다.

답변

5

어리석은 저, 스위프트에서 아주 간단합니다. case "0"..."9":
그런 범위를 만들 정도로 똑똑하지 않을 것이라고 생각했습니다! 아주 멋진.

관련 문제