Scala: как понять метод flatMap в Try?
Метод FlatMap для Success реализован так:
def flatMap[U](f: T => Try[U]): Try[U] =
try f(value)
catch {
case NonFatal(e) => Failure(e)
}
Я вроде понимаю, что делает этот метод, это помогает нам избежать написания большого количества отлавливаемого кода.
Но в каком смысле это похоже на обычный flatMap?
Обычный flatMap берет последовательность последовательностей и помещает все элементы в одну большую «плоскую» последовательность.
Но метод TryM flatMap на самом деле ничего не выравнивает.
Итак, как понять метод flatMap в Try?