Здравствуйте!
Сегодня поговорим как мы можем оптимизировать работу функций высшего порядка в Котлин, с помощью ключевого слова inline. Inline нужен в следующих случаях: Функции высшего порядка, как вы помните, это функции, которые берут другие функции в качестве параметра (или возвращают их в качестве результата). Допустим есть такой код: Здесь всё просто, есть функция doSomething, которая что-то делает, и есть место её вызова — это функция main. Для её работы, лямбда выражения компилируются в анонимные классы, каждый раз когда используются. Так получаются накладные расходы в виде выделения дополнительной памяти при вызове таких функций. А теперь представьте если мы обращаемся к такой функции в цикле. Сколько же памяти уйдет? Поэтому не плохо бы это оптимизировать.
Пометим ключевым словом inline нашу функцию: С виду больше ничего не изменилось, но поменяется то, как компилятор поступит с этой функцией. Он встроит нашу функцию (doSomething) и те лямбды, которые ей переданы(func) в м