gpt4 book ai didi

scala - += 操作在 Scala 映射中到底做了什么?

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

如代码所示:

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。

所以为什么???以及究竟操作“+=”在 map 中做什么?

最佳答案

一、+=assignment operator ,因为它以 = 结尾并且不是比较运算符。这意味着如果没有合适的方法(并且 Int 没有 += 方法),map(1) += 10转换为 map(1) = map(1) + 10 .按照 Assignments 中的规则,这变成 map.update(1, map(1) + 10)这变成 map.update(1, map.apply(1) + 10)因为 map是一个对象而不是一个方法。

关于scala - += 操作在 Scala 映射中到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34407868/

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