Scala REPL打印的类型是什么?

前端之家收集整理的这篇文章主要介绍了Scala REPL打印的类型是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在repl中创建一个小Map时,它告诉我它的类型是immutable.Map

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

然而,这不是全部真相,就像在这种情况下一样

scala> Map(1->1,2->2).getClass
res9: java.lang.Class[_] = class scala.collection.immutable.Map$Map2

Scala如何决定打印什么作为表达式的类型?

解决方法

简短的回答是Scala REPL打印结果的静态类型,如表达式Map(1-> 1,2-> 2)推断的那样,并且getClass返回动态类型,它可以是动态类型的子类型.静态类型.

更长的答案是关于Scala的类型推理引擎如何工作.您可能想阅读Scala Language Reference中的相关章节.

猜你在找的Scala相关文章