swift - 如何在 swift 中使用带有开关的 AS 来获取类类型

标签 swift object casting switch-statement control-flow

我有一个 SomeClass 数组,它是各种其他类的父类(super class)。
该数组包含所有这些随机类。
有没有办法使用 switch(而不是 else if let something = elm as?TheSubClassType)

在伪代码中:

for AObjectOfTypeSomeClass in MyBigArray{
  switch the_type_of(AObjectOfTypeSomeClass){
    case SubClass1:
        let O = AObjectOfTypeSomeClass as! SubClass1
    ...
    ...
    ...
  }
}

最佳答案

你很接近。

for objectOfSomeClass in MyBigArray {
    switch objectOfSomeClass {
    case let subClass as SubClass1:
        // Do what you want with subClass
    default:
        // Object isn't the subclass do something else
    }
}

这个网站有我发现的最好的模式匹配概要。 http://appventure.me/2015/08/20/swift-pattern-matching-in-detail/

关于swift - 如何在 swift 中使用带有开关的 AS 来获取类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378283/

相关文章:

swift - 如何在 Swift 2 Xcode 7 中生成随机数?

ios - 使用 UIView Transition 滑动动画?

Swift:为什么在这种情况下 CustomStringConvertible 描述运行了太多次?

c# - 有条件地创建不同类的对象

php - 选择 pg_fetch_row 数据类型

ios - 从模态弹出到 Root View Controller

javascript - 将引用设置为其他内容后保留 Javascript 引用

php - 通过引用方法传递对象数组

c# - 将泛型方法中的 T 参数转换为 DateTime

types - 我如何在 Rust 中惯用地将 bool 转换为 Option 或 Result?