gpt4 book ai didi

scala - 如何在Scala Map中设置值?

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

我是 Scala 的新手。我有一张 map 。我想使用特定键在 Map 中设置一个值。这是我正在编写的代码 -

var mp: Map[Int, ParticipationStateTransition] = Map.empty[Int, ParticipationStateTransition]

val change: ParticipationStateTransition = new ParticipationStateTransition

mp(ri.userID) = change

它在第三行显示的错误是 -

application does not take parameters



我究竟做错了什么?提前致谢。

最佳答案

使用 .updated :

scala> val m = Map(1 -> 2)
m: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2)

scala> val n = m.updated(1, 3)
n: scala.collection.immutable.Map[Int,Int] = Map(1 -> 3)

scala> m
res0: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2)

scala> n
res1: scala.collection.immutable.Map[Int,Int] = Map(1 -> 3)

请注意,Scala 的 Map是不可变的,所以你需要分配返回值 .updated ,它不会改变原始 map 。

如果想就地更改 map ,可以使用 collection.mutable.Map进而
scala> val m = collection.mutable.Map(1 -> 2)
m: scala.collection.mutable.Map[Int,Int] = Map(1 -> 2)

scala> m.update(1, 3)

scala> m
res3: scala.collection.mutable.Map[Int,Int] = Map(1 -> 3)

如果你想一次设置多个值,你可以这样做:
scala> val m = Map(1 -> 2)
m: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2)

scala> val n = m ++ List((1 -> 3), (2 -> 4)) // also accepts an Array, a Map, …
n: scala.collection.immutable.Map[Int,Int] = Map(1 -> 3, 2 -> 4)

关于scala - 如何在Scala Map中设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29008365/

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