次のコードスニペットについて考えてみます。
class MyClass {
var a = _
var b = _
...
var y = _
val z = (for {
a0 <- someMethodReturningFuture
b0 <- someMethodReturningFuture(a0)
...
z0 <- someMethodReturningFuture(y0)
} yield {
a = a0
b = b0
...
y = y0
someCalculation(y)
}).result
}
そのような初期化を実行することは可能ですが、(どういうわけか)sval
の代わりにsを使用しますか?var
重要なのは、すべての中間結果をブロックして待つのではなく、最後の結果だけを待つということです。