Swift获取通用类型的数组

时间:2016-09-28 15:59:35

标签: arrays swift generics types dynamictype

我需要获得数组的泛型类型。

我有一个Array<Decodable>的对象,但我不能保证泛型类型总是Decodable。我知道我可以通过array.self.dynamicType来获取Array.Type来获取该类型的内容,但我需要array.generic.self.dynamicType之类的内容来获取Decodable.Type。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用公开其泛型类型参数Array的计算属性扩展Element

extension Array {
    var ElementType: Element.Type {
        return Element.self
    }
}

print([1, 2, 3].dynamicType) //Array<Int>
print([1, 2, 3].ElementType) //Int