Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 迭代子数组的未定义长度_Arrays_Swift - Fatal编程技术网

Arrays 迭代子数组的未定义长度

Arrays 迭代子数组的未定义长度,arrays,swift,Arrays,Swift,如何迭代这个变量,其中sub可以有10个以上的sub用于ex 结构{ 标题:字符串 let sub:[结构]? } 让变量=Struct 标题:1, 分:[ 结构名称:1.1,子项:无, 结构标题:1.2,子:[ 结构名称:1.2.1,子项:无, 结构标题:1.2.2,子:[ 结构标题:1.2.2.1,子标题:无 ] ] ] 这很简单。重现。假设我们只想打印所有标题。设想一个方法,其中一个节点打印其标题,然后对其每个子节点调用相同的方法。根据定义,如果在根节点上调用该方法,则现在已打印所有标题。

如何迭代这个变量,其中sub可以有10个以上的sub用于ex

结构{ 标题:字符串 let sub:[结构]? } 让变量=Struct 标题:1, 分:[ 结构名称:1.1,子项:无, 结构标题:1.2,子:[ 结构名称:1.2.1,子项:无, 结构标题:1.2.2,子:[ 结构标题:1.2.2.1,子标题:无 ] ] ]
这很简单。重现。假设我们只想打印所有标题。设想一个方法,其中一个节点打印其标题,然后对其每个子节点调用相同的方法。根据定义,如果在根节点上调用该方法,则现在已打印所有标题。不担心访问顺序或输出格式的最小实现是:

func output() {
    print(title)
    self.sub?.forEach { $0.output() }
}
关键是我的display调用children.map{$0.display}。如果每个节点都打印并告诉其子节点打印,则表示您已经打印了所有节点。