Avatar ·

Ordenação de coleção por vários campos em Kotlin

Olá a todos! Comecei a aprender Kotlin recentemente e me deparei com a tarefa de ordenar uma lista de objetos por vários campos. Por exemplo, tenho a classe Person: ```kotlin data class Person(val name: String, val age: Int, val height: Double) ``` E uma lista de pessoas: ```kotlin val people = listOf( Person("Alice", 25, 165.0), Person("Bob", 30, 180.0), Person("Charlie", 25, 170.0), Person("Alice", 30, 160.0) ) ``` Preciso ordenar esta lista primeiro pelo nome (ascendente), depois pela idade (ascendente) e depois pela altura (descendente). Em Java, eu usaria Comparator com uma cadeia de thenComparing. Em Kotlin, existe a função sortedWith, mas não entendo como aplicá-la corretamente para vários campos. Tentei escrever algo como: ```kotlin val sorted = people.sortedWith(compareBy({ it.name }, { it.age })) ``` Mas isso ordena apenas por dois campos. Como adicionar ordenação descendente para a altura? E, em geral, existe uma maneira mais concisa? Ficarei grato.