【发布时间】:2017-12-16 00:59:35
【问题描述】:
假设我有一个这样的结构:
struct GenericStruct<T>
现在我有一个Any 数组,并且想从这个数组中获取所有GenericStructs,不管泛型类型是什么。我原以为这会起作用:
let arrayOfGenericStructs = arrayOfAny.flatMap { $0 as? GenericStruct<Any> }
但事实并非如此。
我需要做什么才能获得所有GenericStructs 的数组?
【问题讨论】:
-
你在这里得到的被称为存在类型,而 Swift 还没有它们。
C<T>不能转换为C<Any>。您需要使用type eraser