-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
map, compactMap, flatMap, reduce에 대하여 설명해주세요. #34
Comments
mapmap은 매개변수로 전달된 클로저를 실행하여 다시 그 결과를 반환해주는 클로저임. Swift의 Sequence, Collection 프로토콜을 따르는 타입은 모두 map을 사용할 수 있음. map을 통해 컨테이너가 담고 있는 각각의 값을 매개변수를 통해 받은 함수에 적용하고 다시 컨테이너에 포장하여 반환함. 따라서 기존 컨테이너의 값은 변경되지 않고 새로운 컨테이너가 반환됨 compactMap
시퀀스 or 컬렉션의 각 요소를 전달받은 클로저에 적용하고 flatMapSequence의 각 요소들에게 매개변수 클로저가 각 요소에 대한 시퀀스나 컬렉션을 만들때 filter말 그대로 컨테이너 내부의 값을 map가 마찬가지로 새로운 컨테이너의 값을 담아 반환하며, 기존 값을 변경하지 않고 특정 조건에 맞게 걸러내는 역할만 함. 반환타입은 reduce컨테이너 내부 값을 하나로 합하는 기능을 수행함. 배열이라면 배열의 모든 값을 매개변수 클로저의 연산결과로 합해줌. |
우선 고차함수는 함수를 다른 함수의 인자로 사용하거나, 함수의 결과로 함수를 리턴할 수 있는 함수를 의미합니다. map은 이러한 고차함수 중 하나로 기존 데이터를 입력으로 주어진 함수에 따라 변환하여 새로운 결과를 리턴하는 함수입니다. |
해당 함수들은 고차함수로 일급객체인 함수를 인자, 반환값으로 사용하는 함수입니다. map은 시퀀스 프로토콜을 준수하는 데이터에 사용할 수 있습니다. map은 각 요소마다 주어진 동작(함수)으로 가공하여 새로운 시퀀스 타입으로 변환합니다. compactMap과 flatMap은 map에 추가적인 기능이 더해졌는데 compactMap은 옵셔널 타입 중 값이 nil인 경우를 제외하여 반환하고 flatMap의 경우 n차원 배열을 1차원 배열로 바꾸어 반환합니다. reduce는 시퀀스 타입에서 각 요소들을 순차적으로 지정된 동작에 따라 처리하고 하나의 결과로 반환하는 고차함수입니다. 이를 이용하면 정수 배열의 요소의 합을 구할 수도 있고 여러 문자열을 하나의 문자열로 합칠 수도 있습니다. |
🙋🏻 답변얘기 주신 네가지 모두 Swift에서 제공해주는 고차함수로 컬렉션 타입을 효율적으로 변환하는 데 사용됩니다. map은 컬렉션의 각 요소를 변환하여 새로운 컬렉션을 생성하고, compactMap은 변환 과정에서 nil을 제거하여 새로운 컬렉션을 생성합니다. flatMap은 다중 컬렉션을 1차원 컬렉션으로 평탄화 하는데 사용되고, reduce는 컬렉션의 모든 요소를 하나의 값으로 집계하는 데 사용합니다. 이러한 고차함수들을 사용하여 코드를 간결하고 가독성이 좋게 유지할 수 있을뿐더러 복잡한 데이터 처리도 효율적으로 수행할 수 있습니다. 🏷️ 키워드
|
No description provided.
The text was updated successfully, but these errors were encountered: