Swift:具有特定类型的Any对象的过滤器数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift:具有特定类型的Any对象的过滤器数组相关的知识,希望对你有一定的参考价值。

我有一个数组(任何类型)与自定义对象列表(示例对象:车辆,停车场,摩托车)。

我需要使用特定类型过滤此数组:示例Vehicle。你能帮助我吗?

答案

compactMapas?

let values: [Any] = [1, "string", 0.0, ["array values"]]

let strings = values.compactMap { $0 as? String } // ["string"]

确保尽快(一旦数据进入系统)这样做。例如,您不应该将[Any]作为类属性。如果您觉得自己需要,那么您可能错误地设计了数据模型,并且实际上需要枚举。 Any在Swift中不是一个合适的类型;它存在处理某些边缘情况,主要涉及Objective-C,以及非常特殊的情况,如print。如果你的意思是“绝对任何类型都没关系”,那么你不是指Any

以上是关于Swift:具有特定类型的Any对象的过滤器数组的主要内容,如果未能解决你的问题,请参考以下文章

上下文类型 'Any' 不能与数组文字 Swift 3 一起使用

如何制作一个包含特定值的Swift词典?

用于多重过滤 Swift 的布尔语句

无法访问 [AnyHashable:Any] 类型的值 - Swift 4

AnyAnyObjectas

将 controlName 传递给另一个数组时,类型 any[] 上不存在属性控件名称?