Ist es möglich, einen Wert (in einem if) in einem für das Verständnis in Scala für den Einsatz in Ausbeute zu definieren.Können Sie einen Wert (in einem if) in a für das Verständnis in Scala für die Verwendung in Ausbeute definieren
Ich möchte dies tun, um eine mögliche teure Auswertung zweimal zu vermeiden.
Ein Beispiel zur Veranschaulichung.
for {
bar <- bars if expensive(bar) > 5
} yield (bar, expensive(bar))
Dies funktioniert nur, wenn 'teuer (bar)' Art Respekt für Verständnis der Schnittstelle (Karte, flatMap, Filter, mit Filter usw.). Der Autor der Frage hat es nicht vorgeschlagen. Wenn dies der Fall ist, wird ein anderes Ergebnis als der vom Autor bereitgestellte Code zurückgegeben. – pedrofurla
@pedrofurla OK. teurly() kann die Sammlung nicht zurückgeben. Also ändere "<-" in "=" – Don
Hm ... wusste nicht, dass du das 'val' dort weglassen kannst. Nett. Dennoch haben '<-' und' = 'völlig unterschiedliche Bedeutungen, auch wenn sie eine Sammlung zurückgeben. BTW, Sammlung ist nicht notwendig, nur die "wohl monadischen" Schnittstelle. – pedrofurla