Я работаю над Kotlin
списком filter
. Допустим, у меня есть список Worker
экземпляров, и я хочу разработать функцию, которая фильтрует список по условию для startAge
и maxSalary
обнуляемых параметров.
Класс данных
data class Worker(name:String?, age: Int?, salary: Int?){
}
Функция FilterList ()
fun filterList(original: List<Worker>, startAge: Int?, maxSalary: Int?): List<Student>{
val list = original.filter{
it.age >= startAge && it.salary <= maxSalary
}
return list
}
В этот момент я хочу сконструировать функцию filterList
таким образом, если любой параметр передается как null
, это условие не должно быть пропущено. Как я могу это сделать? Например, позвонив с
val list = filterList(original, null, 100)
должен возвращать список работников, чья максимальная зарплата составляет 100
, но не имеет значения возраст.
Моя мысль
В этой конкретной задаче я могу выбрать значения по умолчанию startAge = Int.MAX_VALUE
и maxSalary = Int.MIN_VALUE
, когда null
передается в параметрах. Но я думаю, что внутри фильтра может быть много условных проверок (например, сравнивать даты, проверять равенство строк, оценивать выражения и т. Д.), Которые не всегда можно покрыть значением default
. Как мне избавиться от этого глюка?