250x250
반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

스윞한 개발자

Swift 기초 문법 - 고차함수 Higher Order Functions 본문

Swift 이론

Swift 기초 문법 - 고차함수 Higher Order Functions

스윞남 2024. 1. 23. 15:02
728x90
반응형
SMALL

이번 포스팅은 고차함수에 대해 알아볼게요!

 

고차함수,,

 

뭔가 좀 어렵다는 느낌이 들지만 !! 차근차근 또 배워가며 기록해볼게요

 

고차함수 - Higher Order Functions

"고차함수는 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다."

스위프트에서는 여러가지 고차함수가 제공되고 있으며, 일반적인 고차함수로는 map, filter, reduce가 있습니다. 컬렉션에 대해 작업을 수행하고 새로운 컬렉션을 반환합니다.

 

1. map : 
컬렉션의 각 요소에 대해 특정 연산을 수행하고, 그 결과를 새로운 컬렉션으로 반환합니다.

2. filter : 
컬렉션의 요소 중 특정 조건을 만족하는 요소들로 새로운 컬렉션을 생성하여 반환합니다.

3. reduce : 
컬렉션의 요소를 결합하여 단일 값으로 줄여 반환합니다. 주로 누적된 값을 구할 때 사용합니다.

 

let numbers = [1, 2, 3, 4, 5]
// map: 각 요소를 제곱하여 새로운 배열을 생성
let squaredNumbers = numbers.map { $0 * $0 } // [1, 4, 9, 16, 25]
// filter: 짝수만을 걸러내는 새로운 배열 생성
let evenNumbers = numbers.filter { $0 % 2 == 0 } // [2, 4]
// reduce: 모든 요소를 더하여 합산
let sum = numbers.reduce(0, +) // 15

 

고차함수는 또한 클로저를 이용해 사용자 정의 연산을 적용할 수 있습니다. 

기본적인 map, filter, reduce 내장함수 이외에도
고차 함수의 정의에 맞게 직접 사용할 수도 있습니다.

 

출처 : 개발하는 정대리

 

- 고차함수 sort, sorted 정렬

고차함수인 'sort'와 'sorted'는 스위프트의 배열 정렬에 사용되는 함수입니다.
이 두 함수는 배열의 요소를 정렬하는데 사용되며, 요소의 순서를 기준으로 오름차순 또는 내림차순으로 정렬할수 있습니다.

 

1. 'sort' 함수 :
sort 함수는 배열을 정렬하며, 배열 자체를 수정합니다. 즉, 원본 배열의 순서가 변경됩니다.

var numbers = [5, 2, 9, 1, 5, 6]
// 오름차순 정렬
numbers.sort()
// 내림차순 정렬
numbers.sort { $0 > $1 }
print(numbers) // 출력: [9, 6, 5, 5, 2, 1]

 

2. 'sorted' 함수 :
sorted 함수는 배열을 정렬한 새로운 배열을 반환합니다. 원본 배열은 변경되지 않습니다.
즉, 정렬 된 새로운 배열을 얻고 싶을 때 sorted 함수를 사용합니다.

let numbers = [5, 2, 9, 1, 5, 6]
// 오름차순 정렬된 새로운 배열 반환
let ascendingArray = numbers.sorted()
// 내림차순 정렬된 새로운 배열 반환
let descendingArray = numbers.sorted { $0 > $1 }
print(ascendingArray) // 출력: [1, 2, 5, 5, 6, 9]
print(descendingArray) // 출력: [9, 6, 5, 5, 2, 1]

 

sort 함수와 sorted 함수는 모두 배열의 요소를 정렬하는데 사용되지만, sort 함수는 원본 배열을 변경하고 sorted함수는 정렬된 새로운 배열을 반환하는 차이가 있습니다. 

 

출처 : 개발하는 정대리

728x90
반응형
LIST