gpt4 book ai didi

scala - 如何向左折叠 BigDecimal 列表? ("overloaded method + cannot be applied")

转载 作者:行者123 更新时间:2023-12-03 18:16:43 24 4
gpt4 key购买 nike

我想为 BigDecimal 列表编写一个简短的函数求和函数,并尝试使用:

def sum(xs: List[BigDecimal]): BigDecimal = (0 /: xs) (_ + _)

但我收到此错误消息:
<console>:7: error: overloaded method value + with alternatives:
(x: Int)Int <and>
(x: Char)Int <and>
(x: Short)Int <and>
(x: Byte)Int
cannot be applied to (BigDecimal)
def sum(xs: List[BigDecimal]): BigDecimal = (0 /: xs) (_ + _)
^

如果我改用 Int,则该函数有效。我猜这是因为 BigDecimal 的运算符重载 + . BigDecimal 有什么好的解决方法?

最佳答案

问题在于初始值。解决方案在这里并且非常简单:

 sum(xs: List[BigDecimal]): BigDecimal = (BigDecimal(0) /: xs) (_ + _)

关于scala - 如何向左折叠 BigDecimal 列表? ("overloaded method + cannot be applied"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7535536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com