如何在scala中存储不同的值类型

Jac*_*ack 1 scala

我可能有一个简单的愚蠢问题,如何使用Scala Map存储不同的值类型,例如,我想要Map存储字符串和double值,我尝试了以下代码:

var yaraMap: Map[String, AnyRef] = Map()
yaraMap+={"as"->10.0}
yaraMap+={"bb"->'val'}
Run Code Online (Sandbox Code Playgroud)

但它告诉类型不匹配,我该如何解决这个问题,谢谢!

Dav*_*ank 9

将地图定义为

val yaraMap: Map[String, Any] = Map()
Run Code Online (Sandbox Code Playgroud)

Any是共同的超类型DoubleString.

下图显示了如何AnyValAnyRef相关.String是它们的共同超类型的子类型AnyRef,Double是子AnyVal类型Any.

图像源

  • 因为`Double`不是`AnyRef`它的`AnyVal` (2认同)