[IOS] 객체의 내부 값으로 비교하여 정렬 하는 방법
객체의 내부 값으로 비교하여 정렬하려면 Swift에서 정렬에 사용되는 메서드나 함수에 비교 클로저(closure)를 제공해야 합니다. 이 비교 클로저를 사용하여 객체의 내부 값을 비교하고 정렬 기준을 정의할 수 있습니다.
다음은 객체의 내부 값으로 비교하여 정렬하는 예시입니다:
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let people = [
Person(name: "Alice", age: 25),
Person(name: "Bob", age: 30),
Person(name: "Charlie", age: 20)
]
// age 속성을 기준으로 정렬
let sortedPeople = people.sorted { $0.age < $1.age }
for person in sortedPeople {
print("\(person.name), \(person.age)")
}`
위의 예시에서 Person
클래스는 이름(name)과 나이(age) 속성을 가지고 있습니다. people
배열은 Person
객체들로 초기화되었습니다.
sorted()
함수를 호출할 때 비교 클로저를 전달하여 정렬 기준을 정의합니다. $0
와 $1
은 비교할 두 객체를 나타냅니다. 위의 예시에서는 $0.age < $1.age
를 사용하여 나이(age)를 기준으로 정렬하였습니다. 오름차순으로 정렬되며, 나이가 작은 순서대로 정렬됩니다.
정렬된 결과를 확인하기 위해 for-in
루프를 사용하여 sortedPeople
배열을 순회하고, 객체의 이름과 나이를 출력합니다.
출력 결과는 다음과 같이 나이를 기준으로 정렬된 결과를 보여줍니다:
Charlie, 20
Alice, 25
Bob, 30
이와 같이 비교 클로저를 활용하여 객체의 내부 값을 비교하여 정렬 기준을 정의할 수 있습니다. 비교 클로저를 사용하면 객체의 내부 속성이나 다른 비교 조건을 기준으로 정렬할 수 있습니다.