当前位置:  开发笔记 > 编程语言 > 正文

+ =操作在scala地图中真正做了什么?

如何解决《+=操作在scala地图中真正做了什么?》经验,为你挑选了1个好方法。

如代码所示:

val map = scala.collection.mutable.Map[Int, Int]().withDefaultValue(0)
println(map(1))
map(1) = 10
println(map(1))
map(1) += 10
println(map(1))

和输出:

0
10
20

但是,在我看来,"map(1)+ = 10"在java中是无效的,甚至是有效的,这一行之后的结果map(1)应该是10.

所以为什么???以及"+ ="在地图中的确切操作是什么?



1> Alexey Roman..:

首先,+=是一个赋值运算符,因为它结束于=并且不是比较运算符.这意味着如果没有合适的方法(并且Int没有+=方法),map(1) += 10则转换为map(1) = map(1) + 10.通过在规则的分配,变得map.update(1, map(1) + 10)成为map.update(1, map.apply(1) + 10)因为map是一个对象,而不是方法.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有