我想更好地理解递归循环,并用Swift或其他任何语言来扁平化。
我有一个简单的Swift类
class Survey {
let items: [SurveyItem]?
}
class SurveyItem {
let id: String?
let items: [SurveyItem]?
}
一个调查具有items
,每个item
可以拥有更多自己的类型。
我想编写一个将调查中的所有项目和子项目组合成单个平面数组的函数
答案 0 :(得分:0)
Users
现在,您可以要求任何header('HTTP/1.1 500 Internal Server Error');
或protocol SurveyItemVending {
var items: [SurveyItem]? { get }
}
extension Survey: SurveyItemVending { }
extension SurveyItem: SurveyItemVending { }
extension SurveyItemVending {
var allItemsRecursively: [SurveyItem] {
let items = self.items ?? []
return items + items.flatMap { $0.allItemsRecursively }
}
}
为其Survey
。