想象一下你知道你是一个String的值的情况,但是这个字符串可以是一个字母或多个字母,也可以是一个数字。现在,您要为此值设置switch语句。您希望为任何数字运行相同的代码块,但不希望必须写出引号中的每个数字来捕获所有数据。
这有效,但如何清理它以便你不必写出每一个数字?
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并在case语句中对其进行测试,还是可以更改你在案例中打开的值?例如,您可以将String转换为Int,如果它在0-9范围内,那么您知道原始String是一个数字。像case str.toInt() in 0...9
这样的东西?一个解决方案虽然比上面的代码更不友好,但是创建一个数字数组然后测试str
是否在数组中。
答案 0 :(得分:5)
愚蠢的我,它在Swift中非常简单。 case "0"..."9":
我并不认为创造这样的范围足够聪明!非常漂亮。