Выбор ответа Middle Основы языка обновлено

Во что компилируется функция верхнего уровня

Вопрос

Во что компилируется функция fun hello() из файла Utils.kt на JVM?

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

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

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

Коротко

Правильный ответ: В статический метод класса UtilsKt. Для функций и свойств верхнего уровня компилятор создаёт класс <ИмяФайлаKt со статическими членами.

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

  1. В метод экземпляра класса Utils
  2. В лямбду, сохранённую в глобальной переменной
  3. В статический метод класса UtilsKtправильный ответ
  4. В отдельный класс hello

Разбор

Для функций и свойств верхнего уровня компилятор создаёт класс <ИмяФайла>Kt со статическими членами. Из Java вызывают UtilsKt.hello(), имя класса меняют аннотацией @file:JvmName("Utils"). Экземпляра класса, лямбды или отдельного класса на функцию не создаётся.

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

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

Термины по теме