Iva*_*van 4 scala hashmap mutable
我写了一个与此非常类似的函数:
def writeMyEl (x: TypeA, y: TypeB, z : TypeC) {
if (myMutableHashMap.contains((x, y)))
myMutableHashMap(x, y) = z else
myMutableHashMap += (x, y) -> z
}
Run Code Online (Sandbox Code Playgroud)
在实际代码中,类型A和B是枚举,C是案例类.myMutableHashMap被定义为与函数在同一类中val的类型.scala.collection.mutable.HashMap[(TypeA, TypeB), TypeC]writeMyEl
Scala(2.8)编译器说:
error: too many arguments for method update: (key: (TypeA, TypeB),value: TypeC)Unit
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Ale*_*nov 11
试试myMutableHashMap((x, y)) = z.实际上,您不需要检查,因为文档+=说"向此映射添加新的键/值对.如果映射已包含键的映射,则它将被新值覆盖." 所以你的功能可以写成
def writeMyEl (x: TypeA, y: TypeB, z : TypeC) {
myMutableHashMap += (x, y) -> z
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5917 次 |
| 最近记录: |