Swift-如何在泛型函数中获取数组元素的类型
我需要在泛型函数中获取元素的类型Swift-如何在泛型函数中获取数组元素的类型,swift,Swift,我需要在泛型函数中获取元素的类型 let array = [String].self -> Array<String>.Type let element = array.Element.self -> String.Type JSONDecoder().decode(element, from: data) -> works fine func foo<T>(type: T.Type) where T: Decodable{
let array = [String].self -> Array<String>.Type
let element = array.Element.self -> String.Type
JSONDecoder().decode(element, from: data) -> works fine
func foo<T>(type: T.Type) where T: Decodable{
let element = type.Element -> Error. How to get element here?
JSONDecoder().decode(element, from: data)
}
foo(array)
let array=[String].self->array.Type
让element=array.element.self->String.Type
JSONDecoder().decode(元素,from:data)->工作正常
func-foo(type:T.type),其中T:Decodable{
让element=type.element->Error。如何在此处获取元素?
JSONDecoder().decode(元素,来源:数据)
}
foo(数组)
在本例中,如何在foo函数中获取元素类型?仅当
T
被约束为Sequence
时,代码才起作用,因为只有序列才具有元素类型
您必须在元素
之后添加.self
func foo<T>(type: T.Type) where T: Decodable, T : Sequence {
print(type)
print(type.Element.self)
}
这里的元素是什么?本例中的字符串
... where T: Decodable, T : Sequence, T.Element : Decodable