Источник: Nuances of Programming Одна из главных задач разработчика — писать лаконичный код и избегать дублирования. Обобщения (generics) относятся к числу функциональностей, которые улучшают производительность, способствуют созданию меньших объемов кода и сокращению случаев его переиспользования и т. д. Следовательно, с ними обязательно нужно познакомиться. Зачем нужны обобщения? class SearchUtil(private val list: List<Int>) {
fun searchItem(element: Int, foundItem: (element: Int?) -> Unit) {
val itemFoundList = list.filter {
it == element
}
if (itemFoundList.isNullOrEmpty())
foundItem(null)
else
foundItem(itemFoundList.first())
}
}
fun search() {
val searchUtil = SearchUtil(listOf(25, 46, 35))
searchUtil.searchItem(element = 25) {
println("Search result : $it")
}
}
fun main() {
search()
} Как видно, класс SearchUtil принимает список целых чисел в качестве параметра. Функция searchI