我是scala的新手。我寫了一個名爲calculateSubTotal
的函數,其中包含產品ID和數量列表。爲什麼在執行內部塊之後,scala函數中的塊變量無法更新?
起初該功能會從數據庫中爲每個產品ID挑選一個產品,然後計算individual sub total
並總結爲sub total
。我想返回計算的小計。計算是可以的,但不幸的是它返回initialized value
而不是calculated value
。什麼與我的代碼。該代碼是: -
def calculateSubTotal(productIds: Seq[Int], quantities: Seq[Int]) = {
var subTotal = 0.0
for (index <- 0 to productIds.length - 1) {
val productId = productIds(index)
val quantity = quantities(index)
val futureProduct = Products.read(productId)
for {
product <- futureProduct
} yield {
val listPrice = product.get.listPrice
subTotal += listPrice * quantity
}
}
subTotal
}
看上面的函數總是返回0.0,因爲我已經初始化。什麼將是正確的代碼?
'Products.read()'方法的結果類型是什麼?它是'未來[選項[產品]]'? –
是...'Products.read()'返回'未來[Option [Product]]'@PawełJurczenko – Johir