Какая область видимости у internal

«Какая область видимости у internal» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

internal в Kotlin означает, что элемент (класс, функция, свойство) виден только внутри модуля. Модуль — это набор файлов, скомпилированных вместе (например, модуль в Android Studio или Gradle).

Пример:

// В модуле A
internal class Secret {
    internal fun doSomething() { ... }
}

// В другом модуле B — ошибка, класс не виден
val secret = Secret() 

Отличие от public (виден везде) и private (только внутри файла/класса). Полезно для скрытия деталей реализации внутри модуля.