[swift] 커스텀한 비교 함수를 사용하여 배열의 원소를 정렬하는 방법은 무엇인가요?
Swift에서는 sort(by:)
함수를 사용하여 배열의 원소를 정렬할 수 있습니다. 이 함수를 사용하여 커스텀한 비교 함수를 만들어 원하는 방식으로 정렬할 수 있습니다.
다음은 커스텀한 비교 함수를 사용하여 배열의 원소를 정렬하는 예제 코드입니다.
struct Person {
var name: String
var age: Int
}
let people = [
Person(name: "John", age: 25),
Person(name: "Emily", age: 30),
Person(name: "David", age: 20)
]
let sortedPeople = people.sorted { (person1, person2) -> Bool in
return person1.age < person2.age
}
for person in sortedPeople {
print("\(person.name), \(person.age)")
}
위의 예제에서는 Person
이라는 구조체를 정의하고, name
과 age
라는 속성을 가지고 있습니다. people
배열은 Person
객체들을 포함하고 있습니다.
sorted(by:)
함수를 호출하여 배열의 원소를 정렬합니다. 이때 사용되는 비교 함수는 { (person1, person2) -> Bool in ... }
클로저 형태로 작성됩니다. 이 비교 함수에서는 person1
과 person2
의 age
속성을 비교하고, 오름차순으로 정렬합니다. 비교 결과에 따라 true
또는 false
를 반환합니다.
최종적으로 정렬된 결과를 sortedPeople
에 할당하고, 반복문을 통해 정렬된 결과를 출력합니다.
이와 같이 sorted(by:)
함수를 사용하여 커스텀한 비교 함수를 구현하여 배열의 원소를 정렬할 수 있습니다.
자세한 내용은 Swift 문서를 참고하십시오.