使用 flatten() 懒惰地展平多维数组

我们可以使用 flatten()懒惰地减少多维序列的嵌套。

例如,将 2D 数组延迟展平为 1D 数组:

// A 2D array of type [[Int]]
let array2D = [[1, 3], [4], [6, 8, 10], [11]]

// A FlattenBidirectionalCollection<[[Int]]>
let lazilyFlattenedArray = array2D.flatten()

print(lazilyFlattenedArray.contains(4)) // true

在上面的例子中,flatten() 将返回一个 FlattenBidirectionalCollection ,它会懒惰地应用数组的扁平化。因此, contains(_:) 只需要将前两个嵌套的 array2D 阵列展平 - 因为它会在找到所需元素时发生短路。