[swift] 클로저를 이용한 정렬 함수 작성

클로저는 Swift에서 다양한 용도로 사용되는 강력한 도구입니다. 클로저를 이용하여 정렬 함수를 작성하는 방법을 알아보겠습니다.

클로저란?

클로저는 일종의 익명 함수로서, 변수나 상수에 할당하고 전달할 수 있습니다. 또한, 함수의 인자나 반환 값으로도 사용할 수 있습니다. 클로저는 다른 함수나 메서드에 비해 대단히 간결하게 표현할 수 있습니다.

정렬 함수 작성

다음은 정수 배열을 입력 받아 오름차순으로 정렬하는 클로저를 이용한 함수의 예시입니다.

func sortArray(array: [Int]) -> [Int] {
    let sortedArray = array.sorted(by: {
        (num1, num2) in
        return num1 < num2
    })
    return sortedArray
}

let numbers = [5, 3, 8, 1, 2]
let sortedNumbers = sortArray(array: numbers)
print(sortedNumbers) // [1, 2, 3, 5, 8]

위의 코드에서 sorted(by:) 메서드를 사용하여 배열을 정렬하고 있습니다. 클로저를 이용하여 정렬 기준을 작성하고, 해당 클로저를 sorted(by:) 메서드의 인자로 전달합니다.

클로저 내부에서는 두 개의 인자를 비교하여 정렬 기준을 설정하고 있습니다. 이 경우, 오름차순으로 정렬되도록 num1 < num2의 결과 값을 반환하고 있습니다.

만약 내림차순으로 정렬하고 싶다면 num1 > num2로 변경하면 됩니다.

마무리

클로저를 이용하여 정렬 함수를 작성하는 방법을 알아보았습니다. 클로저는 Swift에서 많은 곳에서 활용되며, 간결하고 효율적인 코드 작성에 큰 도움이 됩니다. 클로저에 대해 더 자세히 알고 싶다면 Swift 공식 문서를 참고해보세요.

참고 자료