我想通過使用less lambda來使Future
的使用更有建設性。目前我正在使用map和lambda來訪問期貨的結果。對於例如爲:如何提供命名函數來映射不使用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
一個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表達式和調試比使用命名函數更難。