scala - Scala:使用 immutable.Map 不需要导入?
问题描述
我在这里学习 Scala https://scastie.scala-lang.org/iRJ8VOw7TySZ4KQ5qlWkdw。
import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.SortedSet
// import scala.collection.immutable.Map // import not required to use immutable.Map
val m = Map((1 -> "a"), (2 -> "bb"))
val r = m.filter(_._1 > 1)
r // Map(2 -> bb): scala.collection.immutable.Map
println(r)
在上面的代码中,r
是类型scala.collection.immutable.Map
,即使scala.collection.immutable.Map
不是导入而是scala.collection.mutable
导入。
如果导入scala.collection.immutable.Map
and scala.collection.mutable._
,r
是immutable.Map
. 如果import scala.collection.mutable._
,r
是mutable.Map
.
我有点困惑。谁能帮忙解释一下?谢谢
解决方案
第一个问题是Map
不是import from因为你的语句scale.collection.mutable
有问题。import
改变
import scala.collection.mutable
至
import scala.collection.mutable._
或者
import scala.collection.mutable.Map
并且Map
将是mutable.Map
。
当您同时导入两者时,因为它更具体scale.collection.immutable.Map
,scala.collection.mutable._
所以获胜。immutable
Map
所以最具体的import
胜利,在平局的情况下,你会得到一个编译器错误。
推荐阅读
- python - python解析HTML,如何解析异常的属性?
- c - 二维数组 C++ 指针地址
- ios - 如果更改 SegmentedControl,则 Swift 地图更改点
- keras - 在卷积层之后添加一个 Dense
- php - 递归项状态性能
- java - 如何通过读取java中的路径来更新json的值?
- deep-learning - 使用图像中的多个对象训练 Faster R-CNN
- php - 如何通过读取单元格中的文本来使用 phpExcel 更改特定文本的颜色?
- adaptive-cards - 具有 Luis 意图的自适应卡片
- ios - 具有自定义非对称可点击区域的 UIButton?