函数kotlin中前面没有对象的flatMap

flatMap without object in front in a function kotlin

fun Mono<Something>.update(): Mono<Something2> {
   return flatMap { mySomething ->
      // some stuff
   }.map()
}

以上代码是如何工作的?

  1. function/method名字前的Mono<Something>是什么意思?
  2. 前面没有对象怎么用flatMap?我以为 flatmap 用法就像 SomeArray.flatMap{}
  3. 在这种情况下,mySomething 指的是什么?
  4. flatMap 然后用 map 链接它的目的是什么?
  1. Mono 是使用扩展函数定义扩展的类型 update。参见 Here
  2. flatMap 在具有扩展功能的 this 接收器上被调用。
  3. mySomething 是 lambda 的参数,它将通过 Iterable 接口的实现绑定到 Mono 提供的元素(假设 flatMap 具有通常的语义)。
  4. flatMap { it.foo() }.map { it.toString() } 等情况下,map 允许无法推送到 flatMap 中执行的转换的转换。