環境
- Swift version 4.1.2
- Xcode 9.4.1
背景
※この記事は Sequence.flatMap を使って多重配列をFlattenしていた人向けの記事です。
Swift4.1になってから Sequence.flatMap がDeprecatedになり、かわりに map と compactMap を使うようになりました。これらの使い方や導入経緯はこちらが詳しいです。
さて、 .flatMap { $0 } を使ってFlattenをしていた人からすると、多重配列をFlattenする方法がなくなってしまいました。
解決策
joined() を使えば良いです。
let multiDimensionalArray: [[Int]] = [[1, 2, 3], [4, 5], [6, 7, 8, 9]] let joinedArray = Array(multiDimensionalArray.joined()) print(joinedArray) // => [1, 2, 3, 4, 5, 6, 7, 8, 9]
よかったですね。
備考
Swift3で flatten() が joined() になっていたらしい。知らんかった。