Карточка Middle Функции, расширения и scope-функции обновлено

Расширение в байткоде

Вопрос

Во что компилируется функция расширения fun String.shout() = uppercase() из файла Text.kt?

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

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

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

Коротко

В статический метод TextKt.shout(String $this): получатель становится первым параметром. Из Java вызов TextKt.shout("hi").

Ответ

В статический метод TextKt.shout(String $this): получатель становится первым параметром. Из Java вызов TextKt.shout("hi"). Поэтому расширения не полиморфны и не видят private членов.

Разбор

В статический метод TextKt.shout(String $this): получатель становится первым параметром. Из Java вызов TextKt.shout("hi"). Поэтому расширения не полиморфны и не видят private членов.

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

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