У меня есть класс данных User
data class User(name: String?, email: String?)
, и я создал функцию расширения, чтобы получить лучший идентификатор (сначала имя, затем адрес электронной почты)
fun User.getBestIdentifier(): String {
return when {
!this.name.isNullOrBlank() -> this.name
!this.email.isNullOrBlank() -> this.email
else -> ""
}
Но я заметил что в моей среде IDE, если я избавлюсь от всех слов this
, он все равно компилируется и запускается. Например:
fun User.getBestIdentifier(): String {
return when {
!name.isNullOrBlank() -> name
!email.isNullOrBlank() -> email
else -> ""
}
Я пришел к выводу, что Kotlin функции расширения неявно поддерживают переменные-члены, но я не уверен. Есть ли у кого-нибудь документация об этом явлении или объяснение того, почему / как это происходит?