代码之家  ›  专栏  ›  技术社区  ›  iur

斯威夫特检查是否有值类型或引用类型

  •  0
  • iur  · 技术社区  · 6 年前

    这个问题已经有了答案:

    是否可以检查对象(不像oop中那样)是引用类型还是值类型?

    let something : Any = getSomething() // func getSomething() -> Any
    let isReferenceType : Bool = // how to check?
    

    编辑: 如前所述,这实际上是 Check if `Any` value is object

    0 回复  |  直到 6 年前
        1
  •  2
  •   Sulthan    6 年前

    这不像看上去那么容易,看

    let isReferenceType: Bool = type(of: something) is AnyClass
    

    How to test whether generic variable is of type AnyObject

    然而,如果您需要这样的东西,那么通常您的架构会有一些大问题,您应该解决这些问题。使用 Any 对于特殊情况,类型应该是最后的选择。