12 Stimmen

Scala: wie versteht man die flatMap-Methode von Try?

Die flatMap-Methode des Success wird wie folgt implementiert:

  def flatMap[U](f: T => Try[U]): Try[U] =
    try f(value)
    catch {
      case NonFatal(e) => Failure(e)
    }

Ich verstehe irgendwie, was diese Methode macht, sie hilft uns, eine Menge an Code zum Fangen von Fehlern zu vermeiden.

Aber inwiefern ähnelt sie dem regulären flatMap?

Ein regulärer flatMap nimmt eine Sequenz von Sequenzen und fügt alle Elemente in eine große "flache" Sequenz ein.

Aber die flatMap-Methode von Try flattet eigentlich nichts.

Also, wie versteht man die flatMap-Methode von Try?

0voto

maks Punkte 5722

Ein reguläres flatMap nimmt eine Sequenz von Sequenzen und fügt alle Elemente in eine große "flache" Sequenz ein

Es wäre angemessen, das Wort Sequenz hier durch Monad zu ersetzen, da diese Operation nicht nur mit Sammlungen zusammenhängt, tatsächlich sind Sammlungen auch Monaden. Denken Sie beispielsweise an Try als eine Sammlung, die entweder einen Erfolg-Wert oder einen Fehler enthalten kann

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X