Карточка 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 ошибок.