Skip to content

Swift의 map, filter, reduce에 대하여 설명해 주세요 #75

@ujhong7

Description

@ujhong7

💁🏻‍♂️ 10-1 : Swift의 map, filter, reduce에 대하여 설명해 주세요

  1. 스위프트는 함수일급 객체로 취급합니다. 그래서 함수를 매개변수로 사용할 수 있습니다.
  2. 매개변수로 함수를 갖는 함수를 고차 함수라고 부르는데, map, filter, reduce는 모두 고차함수에 속합니다.
  3. map초기값클로저전달 받아 전달받은 클로저를 실행하여 그 결과다시 반환해주는 함수입니다.
    기존 데이터를 변형하지 않고 새로운 값을 반환합니다.
    예를들어, 초기 값의 타입을 Int → String으로 변환할 때 사용할 수 있습니다.
  4. filter컨테이너 내부의 값걸러서 추출하는 함수입니다.
    조건에 맞는 값을 모아 map과 마찬가지로 새로운 컨테이너를 반환합니다.
    예를들어, 초기 값이 Int인 경우 10이상인 값만 추출 할 때 사용할 수 있습니다.
  5. reduce초기값하나의 값으로 합쳐주는 함수입니다.
    reduce를 사용하여 배열의 모든 값을 합치는 경우 그 결과는 배열이 아닌 하나의 값으로 나오게 됩니다.

💁🏻‍♂️💁🏻‍♂️ map의 종류인 flatMapcompactMap에 대해서 설명해 주세요

  1. 두 함수는 요소가 1차원 배열일 때 동일하게 동작합니다.
  2. 1차원 배열에서 클로저의 실행 결과가 옵셔널일 때,
    nil인 경우 nil을 제거하고 옵셔널 바인딩 한 결과배열로 만들어 반환합니다.
    하지만, 2차원 배열인 경우 nil을 제거하지않습니다.
  3. flatMap은 결과를 1차원 배열로(flatten) 만들어내고,
    compactMap2차원 배열 그대로 반환한다는 차이점이 있습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions