kotlin - 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" }
}
你有什么想法?
解决方案
推荐阅读
- node.js - 移动平均聚合MongoDB
- vue.js - Vue.js & D3.js - 当用户点击 svg 元素时尝试调用 Vue 方法,但它抛出了一个错误
- terraform - 使用模块无法从 terraform_remote_state 获取 vpc_id 以用于其他模块
- data-structures - 有人可以从 Judy 数据结构文档中解释这一行吗?
- automapper - 自动映射到多个子类型
- c# - Microsoft Graph 无效筛选子句
- json - JQ 根据条件删除条目
- sql - 试图找出 OPENJSON 查询的语法并卡住了
- android - CoordinatorLayout 中的 RecyclerView 在数据更改时滚动到顶部
- javascript - 将 React 应用程序的一部分弹出到新窗口中