鑑於方法Map
存儲從歐元/美元BTC匯率...斯卡拉:如何結合返回一個Future
val btcRates = Map("EUR" -> 0.0036, "USD" -> 0.0045)
...和以下兩種方法...
// returns a Future containing a Map of value to convert to BTC
def getAmounts = Future(Map("EUR" -> 500.0, "USD" -> 550.0, "CHF" -> 400))
// returns a Future containing the exchange rate for the specified currency
def getBtcRate(refCurrency: String) = Future(btcRates(refCurrency))
如何調用getAmounts
,然後對Map
的每個元素返回調用getBtcRate
將金額轉換爲BTC?我如何總結所有轉換的金額?
def getTotal: Future[Double] = {
getAmounts.flatMap { _.map { case (currency, amount) =>
getBtcRate(currency).flatMap { rate =>
amount * rate // how do I sum this and how do I return the result?
}
}}
}
什麼是「利率」和「refCurrency」? – Brian
是的......對不起,他們是兩個錯別字...只是修好了。 – j3d
我會用你的樣本數據添加預期的輸出。另外,我不確定我會在'未來'中爲'getAmounts'放置一個'Map'。這似乎不符合「未來」的精神,它是一個「可以爲尚不存在的結果創建的佔位符對象」。 – Brian