首页 > 解决方案 > param(this.otherParam) 在 kotlin 中的实际含义是什么?

问题描述

我很少使用 Kotlin,但我发现了一些我真的不明白为什么要使用的代码。测试它的回报似乎是Unit

基本上我是这样做的:

sealed class User {

}

data class ActiveUser(val name: String, val lastName: String, val email: String) : User () {

fun <T> doSomething(name: String.() -> T?) =
        name(this.email) ?:  throw RuntimeException("Error")

}

创建一个我继承 ActiveUser 并接收一些参数的类。

我不明白为什么会这样

String.() -> T?

我找到了该信息https://kotlinlang.org/docs/reference/lambdas.html#function-literals-with-receiver

但是还是没看懂……

最让我震惊的是……参数名称怎么可能是一个方法?

姓名(这个.email)

它有什么作用?它实际上是什么意思?

调试它似乎什么都不做......这怎么可能?

我这样测试它,也许我错过了一些东西

fun main() {
    val activeUser: ActiveUser
    activeUser= ActiveUser("John", "Doe", "john@doe.com")
    activeUser.doSomething {"some name" }
}

你有什么想法?

标签: kotlin

解决方案


推荐阅读