gpt4 book ai didi

Scala 类型转换错误,需要帮助!

转载 作者:行者123 更新时间:2023-12-04 14:20:07 25 4
gpt4 key购买 nike

尝试在 Scala 中使用 Java 映射时遇到一个奇怪的错误。这是代码片段

val value:Double = map.get(name)
if (value eq null) map.put(name, time) else map.put(name, value + time)

map 定义为
val map=new ConcurrentHashMap[String,Double]

这是我得到的错误
error: type mismatch;
found : Double
required: ?{val eq: ?}
Note that implicit conversions are not applicable because they are ambiguous:
both method double2Double in object Predef of type (Double)java.lang.Double
and method doubleWrapper in object Predef of type (Double)scala.runtime.RichDouble
are possible conversion functions from Double to ?{val eq: ?}
if (value eq null) map.put(name, time)

我是 Scala 的新手,所以我很难解析堆栈跟踪。任何帮助,将不胜感激

最佳答案

一、map.get(name)不会返回 nullname 的情况下 map 中不存在 key 。相反,它将返回 Double(0.0) .

其次,您看到的错误是因为 Scala 试图将返回的 Double 值隐式转换为适合于 eq 的类型。比较,它在范围内发现了多个隐式转换。

做你正在做的事情的更好方法是

if (map contains name) map.put(name, map.get(name) + time) 
else map.put(name, time)

关于Scala 类型转换错误,需要帮助!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998554/

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