[swift] Map, Filter, Reduce, Monad, FlatMap
[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]]