Cast任何通用类型

问题描述 投票:1回答:1

可以说我有这样的结构:

struct GenericStruct<T>

现在我有一个Any数组,并希望从这个数组获得所有GenericStructs,无论泛型类型是什么。我原以为这会起作用:

let arrayOfGenericStructs = arrayOfAny.flatMap { $0 as? GenericStruct<Any> }

但事实并非如此。

我需要做些什么来获得所有GenericStructs的数组?

swift generics
1个回答
0
投票

我发现了一种丑陋的解决方案:

我定义了GenericStructProtocol符合的协议GenericStruct。现在我可以像这样创建一个GenericStructs数组:

let arrayOfContainers = arrayOfAny.flatMap { $0 as? GenericStructProtocol }

仍然想知道这样做的正确方法是什么。

© www.soinside.com 2019 - 2024. All rights reserved.