在Swift中,您可以使用’is’检查对象的类类型。如何将其合并到“ switch”块中?
我认为这是不可能的,所以我想知道解决此问题的最佳方法是什么。
您绝对可以is
在一个switch
块中使用。请参阅Swift编程语言中的“对Any和AnyObject进行类型转换”(尽管Any
当然不限于此)。他们有一个广泛的例子:
for thing in things {
switch thing {
case 0 as Int:
println("zero as an Int")
case 0 as Double:
println("zero as a Double")
case let someInt as Int:
println("an integer value of \(someInt)")
case let someDouble as Double where someDouble > 0:
println("a positive double value of \(someDouble)")
// here it comes:
case is Double:
println("some other double value that I don't want to print")
case let someString as String:
println("a string value of \"\(someString)\"")
case let (x, y) as (Double, Double):
println("an (x, y) point at \(x), \(y)")
case let movie as Movie:
println("a movie called '\(movie.name)', dir. \(movie.director)")
default:
println("something else")
}
}
Swift 条件语句 switch 语句允许测试一个变量等于多个值时的情况。 Swift 语言中只要匹配到 case 语句,则整个 switch 语句执行完成。 语法 Swift 语言中 switch 语句的语法: switch expression { case expression1 : statement(s) fallthrough /* 可选 */
问题内容: 我正在学习Swift的语法,想知道为什么下面的代码无法按我期望的那样工作: 我想每次将数字除以3(3、6、9、12等)时都打印Fizz,并且每次将其除以5时都打印Buzz,那么缺少哪一块拼图? 注意:我确实使用以下方法解决了问题: 我想知道如何使用Switch解决此问题。谢谢。 问题答案: FizzBuzz游戏的通常规则 是用“ Fizz”替换每个3的倍数,用“ Buzz”替换每个
处理多种不同类型对象的手段之一是使用 switch 语句。switch 语句能够根据每一种对象的类型选择对该对象合适的操作。例如,在形状层次中,每个形状指定自己的类型数据成员,switch 结构可以根据特定对象的类型确定调用哪个 print 函数。 但是,使用 switch 逻辑存在许多问题。例如,程序员可能会忘记应有的类型测试;在一条 switch 语句中可能会忘记测试所有可能的情况;在修改基于
问题内容: 我在用Java为Android应用程序编写一些简单的代码,但出现了这些错误。 而恒定 这是因为我使用过,然后将类型更改为,问题就解决了 我的问题是为什么我们不能将其用作案例表达。Docs说:“开关适用于byte,short,char和int基本数据类型。它还适用于枚举类型(在EnumTypes中讨论),String类以及一些包装某些基本类型的特殊类:Character,字节,短整数和整