2014-12-08 51 views
1

想象一下你有一个你知道的字符串值的情况,但是这个字符串可能是单个字母或多个字母,或者它可能是一个数字。现在,您希望为此值设置一个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") 
} 

你能可以创建,实际上是字符串,测试对在一个case语句一系列int类型,或者你可以改变,你的情况下接通价值?例如,你可以将字符串转换为一个Int,如果它在0-9的范围内,那么你知道原始String是一个数字。像case str.toInt() in 0...9?一种解决方案虽然比上面的代码更不友好,但会创建一个数字数组,然后测试str是否在数组中。

回答

5

傻,我在Swift中超级简单。 case "0"..."9":
我不认为这将是足够聪明的创建一个这样的范围!非常漂亮。