Я пытаюсь сохранить параметры, используемые для сортировки последовательности в Scala для последующего выполнения позже.Scala Сохранение параметров сортировки
Например, вместо «list.sortBy (.value)», я хочу, чтобы сохранить (« .value„) функции сортировки, и получить эту функцию сортировки (“_.value») на более поздней времени для фактической сортировки.
Как сохранить и получить аргументы функции сортировки для отложенного выполнения? Вот некоторые примеры кода тест:
class SortTest {
def testSort() = {
val myClass = new MyClass(0)
val list = List (myClass, new MyClass(1), new MyClass(2), new MyClass(3), new MyClass(4))
// Want to sort by value attribute, but don't want to sort right away. Rather
// how do I save the sort function, and retrieve it at a later time for execution?
list.sortBy(_.value)
// save the sort function (i.e. sort by the value attribute of myClass)
// something similar to the following syntax
myClass.setSortFunction (_.value)
// retrieve the sort function and sort the list
list.sortBy(myClass.getSortFunction())
}
class MyClass (d:Int){
val value = d
val sortFunc = null
// what should be the signature of this function ?
def setSortFunction (sortFunc:()) = {
this.sortFunc = sortFunc
}
// what should be the return type of this function?
def getSortFunction() = {
return sortFunc
}
}
}
Почему бы вам просто не назначить эту функцию переменной? Почему вы не используете ленивые коллекции? Что вы пытаетесь выполнить, отложив сортировку? –