首页 > 解决方案 > 迅速。检查 Any 是值类型还是引用类型

问题描述

是否可以检查一个对象(不是 OOP 中的)是引用类型还是值类型?

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

编辑:正如所指出的,这实际上是Check if `Any` value is object

标签: swift

解决方案


这并不像看起来那么容易,请参阅

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

请参阅如何测试泛型变量是否属于 AnyObject 类型

但是,如果您需要这样的东西,那么通常您的架构会遇到一些大问题,您应该解决这些问题。使用Any类型应该是特殊情况下的最后手段。


推荐阅读