Scala不可变。每次调用Map.apply都会重新评估

时间:2019-04-23 12:51:25

标签: scala

我对Map.apply API感到困惑。您可以通过以下4行代码轻松重现该问题。

case class Product(id: Int, tags: Set[String])
val productList = List(Product(0, Set("a")), Product(1, Set("a", "b")))
// Create a dict mapping from a tag to a list of product
val tagDict = productList.flatMap(p => p.tags.map(_ -> p)).groupBy(_._1).mapValues(_.map(_._2))
println(tagDict("a") eq tagDict("a"))

似乎每次tagDict("a")给我一个不同的对象。 IMO,一旦构建了地图,键a的值应固定。 谢谢。

0 个答案:

没有答案