Scala 中集合输出的 <notComputed>

Loo*_*oom 4 scala scala-collections

当我尝试 println 时,MapView我收到一条消息MapView(<not computed>)

val phonebook = Map("Jim" -> 555, "Daniel" -> 789)
println(phonebook)           // Map(Jim -> 555, Daniel -> 789)

val filteredMap = phonebook.filterKeys(_.startsWith("J"))
println(filteredMap("Jim"))  // 555
println(filteredMap)         // MapView(<not computed>)
Run Code Online (Sandbox Code Playgroud)

如果我定义filteredMap如下

val filteredMap = phonebook.view.filterKeys(_.startsWith("J"))
Run Code Online (Sandbox Code Playgroud)

那么什么都没有改变。Scala 版本是2.13.2

为什么无法打印地图视图以及解决该问题的最佳方法是什么?

Ram*_*hra 6

添加.toMap将您的地图视图转换为静态地图。正如@ Luis Miguel Mej\xc3\xada Su\xc3\xa1rez所建议的

\n\n
val filteredMap = phonebook.view.filterKeys(_.startsWith("J")).toMap\n
Run Code Online (Sandbox Code Playgroud)\n