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