我对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
的值应固定。
谢谢。