gpt4 book ai didi

scala - 如何更新 Scala 中的可变 HashMap 元素?

转载 作者:行者123 更新时间:2023-12-04 22:37:25 24 4
gpt4 key购买 nike

我写了一个与此非常相似的函数:

def writeMyEl (x: TypeA, y: TypeB, z : TypeC) {
if (myMutableHashMap.contains((x, y)))
myMutableHashMap(x, y) = z else
myMutableHashMap += (x, y) -> z
}

在实际代码中,类型 A 和 B 是枚举,而 C 是案例类。 myMutableHashMap 定义为 val类型 scala.collection.mutable.HashMap[(TypeA, TypeB), TypeC]在与 writeMyEl 相同的类(class)内功能。

Scala (2.8) 编译器说:
error: too many arguments for method update: (key: (TypeA, TypeB),value: TypeC)Unit

我究竟做错了什么?

最佳答案

试试 myMutableHashMap((x, y)) = z .实际上,您不需要检查,因为 += 的文档说“向这个映射添加一个新的键/值对。如果映射已经包含一个键的映射,它将被新值覆盖。”所以你的函数可以写成

def writeMyEl (x: TypeA, y: TypeB, z : TypeC) {
myMutableHashMap += (x, y) -> z
}

关于scala - 如何更新 Scala 中的可变 HashMap 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3694562/

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