Вы можете написать это так:
private fun String?.startsWith(sub: String): Boolean = this?.startsWith(sub, false) == true
, который использует эту подпись startsWith
из StringsJVM.kt
:
public fun String.startsWith(prefix: String, ignoreCase: Boolean = false): Boolean
Таким образом, явно передавая значение параметру ignoreCase
,
вы избегаете рекурсии, потому что ваша функция расширения больше не вызывает сама себя.