반응형
map(_:)
Returns an array containing the results of mapping the given closure over the sequence’s elements.
func map<T>(_ transform: (Self.Element) throws -> T) rethrows -> [T]
Complexity : O(n)
compactMap(_:)
Returns an array containing the non-nil results of calling the given transformation with each element of this sequence.
func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]
Complexity : O(m + n), where n is teh length of this sequence and m is the length of the result.
Use this method to receive an array of non-optional values when your transformation produces an optional value.
let possibleNumbers = ["1", "2", "three", "//4", "5"]
let mapped: [Int?] = possibleNumbers.map { Int($0) }
//[Optional(1), Optional(2), nil, nil, Optional(5)]
let compactMapped: [Int] = possibleNumbers.compactMap { Int($0) }
//[1, 2, 5]
map을 사용했을 때는 결과값이 nil 혹은 옵셔널로 나오지만,
compactMap을 사용하면 옵셔널이 제거된 유효한 값들만 반환된다.
기존 map에서 옵셔널 바인딩의 기능이 추가된 느낌
728x90
반응형
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift] Escape closure 탈출클로저란? (0) | 2023.01.13 |
---|---|
[Swift] Generic에 대하여 (0) | 2023.01.12 |
[Swift] Extension에 대하여 (0) | 2023.01.09 |
[Swift] POP? (0) | 2023.01.07 |
[Swift] mutating? (0) | 2023.01.06 |