【发布时间】:2017-09-17 15:00:32
【问题描述】:
我正在尝试创建一个函数,它接收嵌套的对象数组,例如 [1,[2,[3,4],[5,6]]],并在单个数组中返回值,例如 [1,2, 3,4,5,6]。我想为通用对象做这件事,所以我创建了一个方法
func getNestedArray<T>(array:[Any])->[T]?{
var nestedArray:[T] = []
for object in array{
if object is [Any]{
let neededArray = getNestedArray(array: object as! [Any])
nestedArray.append(contentsOf: neededArray)
}
else if object is T{
nestedArray.append(object as! T)
}
else{
print("send proper array dumbass")
return nil
}
}
return nestedArray
}
因此,如果对象是 T 类型,我只需附加它,或者如果它是数组类型,我将再次调用该函数并递归地给我正确的结果,但在调用此函数时出现错误。我究竟做错了什么?我只是将 'Any' 类型的对象作为 '[Any]' 传递。为什么会抛出这个错误?
【问题讨论】:
-
为什么这被否决了?我问错了吗?