나는 scala를 처음 사용합니다. 제품 ID 및 수량 목록이있는 calculateSubTotal
이라는 함수를 작성했습니다.스칼라 함수의 블록 변수가 내부 블록을 실행 한 후 업데이트 할 수없는 이유는 무엇입니까?
처음에이 함수는 각 제품 ID에 대해 데이터베이스에서 제품을 가져온 다음 individual sub total
을 계산하고 sub total
으로 요약합니다. 계산 된 소계를 반환하고 싶습니다. 계산은 정상이지만 불행히도 calculated value
이 아닌 initialized 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