使用 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 陣列展平 - 因為它會在找到所需元素時發生短路。