Avatar ·

Ordenamiento de una colección por varios campos en Kotlin

¡Hola a todos! Acabo de empezar a aprender Kotlin y me encontré con una tarea que parece simple, pero no puedo encontrar una solución elegante. Tengo una lista de objetos de la clase `Person`: ```kotlin data class Person( val name: String, val age: Int, val salary: Double ) ``` Necesito ordenar esta lista primero por edad (ascendente), luego, si la edad es la misma, por nombre (en orden alfabético), y finalmente, si tanto la edad como el nombre coinciden, por salario (descendente). En Java usaría una cadena de comparadores, pero en Kotlin veo que hay una función `sortedBy`, pero solo acepta un campo. Hay `sortedWith` y `compareBy`, pero no entiendo completamente cómo combinarlos correctamente. Probé este código: ```kotlin val sortedList = list.sortedBy { it.age }.sortedBy { it.name }.sortedByDescending { it.salary } ``` Pero claramente no funciona, porque cada ordenamiento posterior sobrescribe el anterior. ¿Cómo implementar correctamente un ordenamiento de múltiples niveles?