Можно ли называть Extention-функцию так же как внутренний метод класса

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

Ответ

Нет, лучше избегать таких ситуаций. Если extension-функция имеет то же имя, что и метод класса, при вызове всегда будет использоваться метод класса, а extension просто не будет видна в этом контексте. Это может привести к путанице.

fun String.length() = 42 // Не будет работать!

fun main() {
    println("test".length()) // Выведет 4 (реальный length)
}

Рекомендуется давать extension-функциям осмысленные имена, которые не конфликтуют с существующими методами класса. Например, если нужно добавить метод для проверки длины строки, можно назвать его customLength() или safeLength().