我有一个数据类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 扩展函数隐式支持成员变量,但我不确定。有没有人有任何关于这种现象的文档或解释它为什么/如何发生?