Ответ
Нет, extension-функции, объявленные внутри класса, не имеют доступа к его приватным полям. Они ведут себя как обычные extension-функции, просто ограничены областью видимости класса.
class MyClass(private val secret: String) {
fun String.printSecret() {
println(secret) // Ошибка: Cannot access 'secret'
}
}
Extension-функции — это статические функции, которые принимают экземпляр класса (receiver) как первый параметр. Они не являются членами класса и не наследуют его область видимости.