[swift] 고차 함수를 사용하여 배열 내의 모든 원소들을 특정 값 기준으로 재배열하는 방법은 어떻게 되나요?
Swift는 고차 함수를 사용하여 배열을 다양한 방식으로 조작할 수 있습니다. 배열 내의 원소를 특정 값 기준으로 재배열하려면 sorted(by:)
, sort(by:)
, map(_:)
등을 사용할 수 있습니다. 이들 함수들은 다음과 같이 사용할 수 있습니다:
sorted(by:)
: 이 함수는 배열의 원소를 주어진 클로저 조건에 따라 정렬하여 새로운 배열을 반환합니다.
let numbers = [5, 2, 9, 1, 7]
let sortedNumbers = numbers.sorted(by: { $0 < $1 }) // 오름차순 정렬
// sortedNumbers: [1, 2, 5, 7, 9]
sort(by:)
:sorted(by:)
와 유사하지만, 배열을 직접 정렬합니다.
var numbers = [5, 2, 9, 1, 7]
numbers.sort(by: { $0 < $1 }) // 오름차순 정렬
// numbers: [1, 2, 5, 7, 9]
map(_:)
: 이 함수는 배열의 모든 원소에 대해 주어진 클로저를 실행하고, 그 결과로 새로운 배열을 생성합니다.
let numbers = [5, 2, 9, 1, 7]
let squaredNumbers = numbers.map({ $0 * $0 }) // 각 원소의 제곱 계산
// squaredNumbers: [25, 4, 81, 1, 49]
위의 예시에서는 sorted(by:)
함수를 사용하여 배열을 정렬하는데, $0
와 $1
은 클로저의 매개 변수로 각각 비교될 두 값이 전달됩니다. $0 < $1
은 두 값의 순서를 비교하여 오름차순으로 정렬합니다.
따라서, 고차 함수를 활용하여 배열 내의 모든 원소들을 특정 값 기준으로 재배열할 수 있습니다. 위의 예시 코드를 참고하여 자유롭게 활용해보세요.