可以说我有这样的结构:
struct GenericStruct<T>
现在我有一个Any
数组,并希望从这个数组获得所有GenericStruct
s,无论泛型类型是什么。我原以为这会起作用:
let arrayOfGenericStructs = arrayOfAny.flatMap { $0 as? GenericStruct<Any> }
但事实并非如此。
我需要做些什么来获得所有GenericStruct
s的数组?
我发现了一种丑陋的解决方案:
我定义了GenericStructProtocol
符合的协议GenericStruct
。现在我可以像这样创建一个GenericStruct
s数组:
let arrayOfContainers = arrayOfAny.flatMap { $0 as? GenericStructProtocol }
仍然想知道这样做的正确方法是什么。