flatMap без объекта спереди в функции kotlin - PullRequest
0 голосов
/ 03 марта 2020
fun Mono<Something>.update(): Mono<Something2> {
   return flatMap { mySomething ->
      // some stuff
   }.map()
}

Как работает приведенный выше код?

  1. Что означает Mono<Something> перед именем функции / метода?
  2. Как использовать flatMap без какого-либо объекта впереди? Я думал, flatmap использование похоже на SomeArray.flatMap{}
  3. что означает mySomething в данном случае?
  4. Какова цель создания flatMap, а затем связать его с map?

1 Ответ

2 голосов
/ 03 марта 2020
  1. Mono - это расширяемый тип с определением функции расширения update. См. Здесь .
  2. flatMap вызывается на this приемнике, доступном с функцией расширения.
  3. mySomething - это параметр лямбда, который будет быть привязанным к элементам, предоставленным Mono через реализацию интерфейса Iterable (при условии, что flatMap имеет обычную семантику).
  4. В таких случаях, как flatMap { it.foo() }.map { it.toString() }, map допускает преобразования, которые не могут быть втянутым в преобразование, выполненное в flatMap.
...