A função compareTo está presente na interface Comparable<in T> e ela permite comparar um valor específico com outro valor informado por parâmetro.
Se o valor comparado for maior que o valor passado por parâmetro, então ele retornará 1
Se o valor comparado for menor que o valor passado por parâmetro, então ele retornará -1
Se o valor comparado for igual ao valor passado por parâmetro, então ele retornará zero.
O compareTo, pode ser usado com os seguintes tipos básicos do kotlin:
operator fun compareTo(other: Byte): Int
operator fun compareTo(other: Int): Int
println(10.compareTo(20)) //Retornará -1
println(10.compareTo(5)) //Retornará 1
println(10.compareTo(10)) //Retornará 0
operator fun compareTo(other: Short): Int
println("b".compareTo("c")) //Retornará -1
println("b".compareTo("a")) //Retornará 1
println("b".compareTo("b")) //Retornará 0
operator fun compareTo(other: Long): Int
val valor1: Long = 3009849093456563435
val valor2: Long = 4009849093456563435
println(valor1.compareTo(valor2)) //Retornará -1
println(valor2.compareTo(valor1)) //Retornará 1
println(valor1.compareTo(valor1)) //Retornará 0
Acho que até aqui já deu pra você compreender como usar o compareTo. A mesma lógica segue para os demais Tipos básicos, então que tal praticar um pouco replicando esses exemplos usando o Float e Double?
Sinta-se a vontade para tirar dúvidas e comentar sobre o conteúdo do Post.