mpr*_*rad 2 functional-programming scala bigdecimal foldleft
我有要求在哪里我想要列表中所有员工薪水的总和
employeeList.foldLeft(java.math.BigDecimal.ZERO) { (accSal,emp) => accSal + getSalary(emp,designation,yearsOfExp) }
Run Code Online (Sandbox Code Playgroud)
在这里,我想为每个员工调用一个函数getSalary,并对返回值求和以获取所有员工的薪水
上面的代码似乎对我不起作用,不断出错
Type mismatch expected:String actual:BigDecimal
Run Code Online (Sandbox Code Playgroud)
替代Mario的答案,如果getSalary返回a java.math.BigDecimal,则the fold也应该返回1而不是a scala.math.BigDecimal。
你可以这样做:
employeeList.foldLeft(java.math.BigDecimal.ZERO) {
(accSal, emp) =>
accSal.add(getSalary(emp,designation,yearsOfExp))
}
Run Code Online (Sandbox Code Playgroud)
您可以检查javadoc以确认它们没有+方法,而是一个方法add。
因此,它正在调用+返回Strings的方法。
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |