我有一个数组(任何类型),其中包含自定义对象(示例对象:车辆,停车场,摩托车)的列表。
我需要使用特定类型过滤此数组:例如Vehicle。 你能帮我吗?
答案 0 :(得分:4)
使用compactMap
和as?
:
let values: [Any] = [1, "string", 0.0, ["array values"]]
let strings = values.compactMap { $0 as? String } // ["string"]
确保尽快执行此操作(一旦数据进入系统)。例如,您不需要[Any]
作为类属性。如果您认为需要,则可能是您错误地设计了数据模型,并实际上想要一个枚举。 Any
在Swift中不是正确的类型;它可以处理某些边缘情况,主要涉及Objective-C,以及非常特殊的情况,例如print
。如果您不是说“在这里绝对可以使用任何类型”,那么您就不是在说Any
。