Выбор ответа Middle Лямбды, inline и reified спрашивают часто обновлено

Что делает inline-функция

Вопрос

Что делает модификатор inline у функции с параметром-лямбдой?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Тело функции и лямбды подставляется в место вызова. При инлайне тело функции и переданной лямбды копируется в место вызова, поэтому нет аллокации объекта лямбды и виртуального вызова invoke.

Варианты ответа

  1. Запускает функцию в отдельном потоке, чтобы не блокировать вызов
  2. Тело функции и лямбды подставляется в место вызоваправильный ответ
  3. Кеширует результат функции для одинаковых аргументов
  4. Делает функцию доступной только внутри файла, как private

Разбор

При инлайне тело функции и переданной лямбды копируется в место вызова, поэтому нет аллокации объекта лямбды и виртуального вызова invoke. Это и позволяет non-local return и reified. Потоков, кеширования и ограничения видимости inline не добавляет; видимость задают private/internal.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.