Выбор ответа Middle Лямбды, inline и reified спрашивают часто обновлено
Что делает inline-функция
Вопрос
Что делает модификатор inline у функции с параметром-лямбдой?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Тело функции и лямбды подставляется в место вызова. При инлайне тело функции и переданной лямбды копируется в место вызова, поэтому нет аллокации объекта лямбды и виртуального вызова invoke.
Варианты ответа
- Запускает функцию в отдельном потоке, чтобы не блокировать вызов
- Тело функции и лямбды подставляется в место вызоваправильный ответ
- Кеширует результат функции для одинаковых аргументов
- Делает функцию доступной только внутри файла, как private
Разбор
При инлайне тело функции и переданной лямбды копируется в место вызова, поэтому нет аллокации объекта лямбды и виртуального вызова invoke. Это и позволяет non-local return и reified. Потоков, кеширования и ограничения видимости inline не добавляет; видимость задают private/internal.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.