[swift] 고차 함수를 사용하여 배열 내에서 특정 값을 기준으로 정렬하는 방법은 어떻게 되나요?
아래는 sorted(by:)
함수를 사용하여 배열을 특정 값에 따라 정렬하는 예제입니다:
let numbers = [5, 2, 8, 1, 9, 3]
let sortedNumbers = numbers.sorted(by: { $0 < $1 })
print(sortedNumbers) // [1, 2, 3, 5, 8, 9]
위의 예제에서는 숫자 배열을 오름차순으로 정렬하였습니다. 비교 클로저 { $0 < $1 }
은 첫 번째 인자 $0
와 두 번째 인자 $1
을 비교하여 $0
이 $1
보다 작으면 true를 반환합니다.
만약 내림차순으로 정렬하고 싶다면 비교 클로저를 { $0 > $1 }
로 변경하면 됩니다:
let numbers = [5, 2, 8, 1, 9, 3]
let sortedNumbers = numbers.sorted(by: { $0 > $1 })
print(sortedNumbers) // [9, 8, 5, 3, 2, 1]
위의 예제에서는 숫자 배열을 내림차순으로 정렬하였습니다. 비교 클로저 { $0 > $1 }
은 첫 번째 인자 $0
와 두 번째 인자 $1
을 비교하여 $0
이 $1
보다 크면 true를 반환합니다.
다른 비교 기준으로 정렬하고 싶다면 비교 클로저를 알맞게 작성하여 사용하면 됩니다.