Kotlin – Сортировка MutableList на основе свойства объекта

У меня есть этот объект токена:

class Token(type: TokenType, value: String, position: IntRange = 0..0) 

Я объявляю MutableList:

 val tokens: MutableList<Token> = mutableListOf() // Mutable List filled 

Теперь я хочу отсортировать список, основанный на первом значении позиции IntRange. Я попытался сделать это:

 tokens .sortedBy { it.position.first } 

Однако у меня нет доступа к объекту после использования его ключевого слова, поэтому позиция выделена красным цветом.

Какие-либо предложения?

position – это параметр, а не свойство , чтобы присвоить ему свойство основного конструктора val / var , например:

 //makes the parameter to a property by `val` keyword---v class Token(val type: TokenType, val value: String, val position:IntRange = 0..0) 

Затем вы можете сортировать Token по position , например:

 tokens.sortedBy { it.position.first } 

Другое наблюдение заключается в том, что sortedBy возвращает отсортированную копию списка. Если вы хотите отсортировать свой измененный список на месте, вы должны использовать функцию sortBy :

 tokens.sortBy { it.position.first } // tokens is sorted now