我想Future
通过使用更少的 lambda 来使我的 s 使用更具建设性。目前我正在使用 map 和 lambdas 来访问期货的结果。例如:
val rateQuote = future {
connection.getCurrentValue(USD)
}
val purchase = rateQuote map { quote =>
if (isProfitable(quote)) connection.buy(amount, quote)
else throw new Exception("not profitable")
}
purchase onSuccess {
case _ => println("Purchased " + amount + " USD")
}
map
我不想为 each 提供一个 lambda (匿名函数) ,而是提供一个命名函数/方法。我该怎么做?例如:
val rateQuote = future {
connection.getCurrentValue(USD)
}
def namedFunction(arg: Arg) =
if (isProfitable(quote)) connection.buy(amount, quote)
else throw new Exception("not profitable")
val purchase = rateQuote map { quote => namedFunction }
甚至更好
val purchase = rateQuote map namedFunction
我主要担心的是我发现自己将太多的逻辑转移到 lambda 中,并且调试比使用命名函数更难。