使用 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
阵列展平 - 因为它会在找到所需元素时发生短路。