Ответ
Уровень доступа по умолчанию: internal.
- Класс, объявленный без явного модификатора доступа, виден всем сущностям в рамках всего модуля (target), но не за его пределами.
- Это баланс между инкапсуляцией и удобством разработки внутри одного модуля.
Пример:
// Объявлен в модуле 'MyFramework'
class MyClass { // internal по умолчанию
var property: Int = 0
}
// Доступен везде внутри MyFramework, но не виден в другом импортирующем приложении.
Иерархия уровней доступа (от наиболее строгого к наименее строгому):
private— доступ только в пределах текущей области объявления (включая расширения в том же файле).fileprivate— доступ в пределах исходного файла.internal— (по умолчанию) доступ в пределах всего модуля.public— доступ за пределами модуля, но наследование и переопределение ограничены внутри модуля.open— доступ за пределами модуля, включая возможность наследования и переопределения.