我已经这样做了:
func doSomething(anObject: AnyObject)
{
switch anObject {
case let myObj as MyClass:
println("Is a kind of MyClass")
case let yourObj as YourClass:
println("Is a kind of YourClass")
default:
break
}
}
正如您所期望的那样,MyClass
或 YourClass
的类和子类会导致执行相关的打印语句。
但是,我有一个情况,我希望它匹配一个确切的类(而不是该类的任何子类)。理想情况下,我想要像 case let myObj as MyClass:
行一样简单而优雅的东西,例如 case let myObj as正是 MyClass:
。在 Swift 中可能有这样的事情吗?否则,在 case 语句中实现此目的最优雅、最简洁的方法是什么?
最佳答案
class A {}
class B: A {}
let b = B()
let b_is_exactly_a = b.dynamicType === A.self // false
let b_is_exactly_b = b.dynamicType === B.self // true
let b_is_a = b is A // true
let b_is_b = b is B // true
关于swift - 是否有一种简单的类似 swift 的方法来匹配 case 语句中的确切类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736574/