[swift] 정렬 함수의 확장 기능 사용하기

Swift에서는 배열을 정렬하는 데 사용할 수 있는 내장된 정렬 함수가 있습니다. 하지만 때로는 이 함수에 추가 기능을 포함시키고 싶을 수도 있습니다. 이때, 정렬 함수의 확장 기능을 사용하면 원하는 기능을 쉽게 추가할 수 있습니다.

정렬 함수 확장 기능 만들기

Swift에서 내장된 정렬 함수를 확장하기 위해 extension 키워드를 사용합니다. 아래는 배열을 정렬하는데 사용되는 내장된 sorted() 함수를 확장하여 특정 조건에 따라 정렬하는 확장 기능을 만드는 예제입니다.

extension Array where Element: Comparable {
    func sortByCondition() -> [Element] {
        return self.sorted(by: { $0 < $1 })
    }
}

위의 예제에서는 sortByCondition() 함수를 정의하여 배열을 오름차순으로 정렬합니다. $0$1은 클로저에서 첫 번째와 두 번째 요소를 나타내는 매개변수입니다. sorted(by:) 함수를 호출하여 배열을 정렬하고, 함수의 결과를 반환합니다.

확장 기능 사용 예제

확장 기능을 사용하여 배열을 정렬하는 예제입니다.

let numbers = [5, 2, 9, 1, 3]
let sortedNumbers = numbers.sortByCondition()
print(sortedNumbers)  // [1, 2, 3, 5, 9]

위의 예제에서는 numbers 배열을 정렬하기 위해 sortByCondition() 함수를 호출한 결과를 sortedNumbers에 할당하고, 정렬된 결과를 출력합니다.

결론

Swift의 확장 기능을 사용하면 내장된 정렬 함수에 원하는 기능을 추가할 수 있습니다. 정렬 함수를 확장하여 사용하면 코드의 가독성과 재사용성을 높일 수 있습니다.

참고 문서: Swift 공식 문서 - Extensions