加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

什么=操作真的在scala地图中做?

发布时间:2020-12-16 18:18:48 所属栏目:安全 来源:网络整理
导读:如代码所示: val map = scala.collection.mutable.Map[Int,Int]().withDefaultValue(0)println(map(1))map(1) = 10println(map(1))map(1) += 10println(map(1)) 和输出: 01020 但是,在我看来,“map(1)= 10”在java中是无效的,甚至是有效的,这一行之后的结
如代码所示:

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.

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

解决方法

首先,=是 assignment operator,因为它以=结尾,并且不是比较运算符.这意味着如果没有合适的方法(并且Int没有=方法),map(1)= 10将转换为map(1)= map(1)10.根据 Assignments中的规则,这将成为映射.update(1,map(1)10)这就变成了map.update(1,map.apply(1)10),因为map是一个对象而不是一个方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读