고차함수

일급 객체

[swift] Map, Filter, Reduce, Monad, FlatMap

flatMap, compactMap

[Swift] 고차함수(2) - map, flatMap, compactMap

Swift 4.1부터는

1차원 배열에서 nil을 제거하고 옵셔널 바인딩을 하고싶으실때는 compactMap 사용.

2차원 배열을 1차원 배열로 flatten하게 만들때 flatMap을 사용.

예제

flatMap 과 compactMap 출력 결과

let array2: [[Int?]] = [[1, 2, 3], [nil, 5], [6, nil], [nil, nil]]
let flatMapTest2 = array2.flatMap { $0 }
let compactMapTest2 = array2.compactMap { $0 }

print("flatMapTest2 :",flatMapTest2)
print("compactMapTest2 :",compactMapTest2)

<출력>
// flatMapTest2 : [Optional(1), Optional(2), Optional(3), nil, Optional(5), Optional(6), nil, nil, nil]
// compactMapTest2 : [[Optional(1), Optional(2), Optional(3)], [nil, Optional(5)], [Optional(6), nil], [nil, nil]]