在尝试在Scala中创建映射时,我收到以下错误消息:对象映射不是值
我正在使用的代码如下:
val myStringMap = Map[String, String]("first" -> "A", "second" -> "B", "third" -> "C")
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么我不能创建这个地图,因为在查看Scala文档之后,在我看来我的代码的语法是正确的.
oxb*_*kes 23
当您看到错误"object is not value"时,这通常意味着范围内类型是Java类型 - 您可能正在java.util.Map范围内导入
scala> Map(1 -> "one")
res0: scala.collection.immutable.Map[Int,java.lang.String] = Map(1 -> one)
Run Code Online (Sandbox Code Playgroud)
但
scala> import java.util.Map
import java.util.Map
scala> Map(1 -> "one")
<console>:9: error: object Map is not a value
Map(1 -> "one")
^
Run Code Online (Sandbox Code Playgroud)
请记住,在scala中,每个类都带有一个(可选的)伴随对象,它是一个值.Java类不是这样.
因为在 scala 中,每个本机 scala 类都带有一个(可选)伴生对象(允许从伴生对象进行赋值,如示例代码中所示),因此在将 java 类合并到 scala 代码中时,请始终记住通过调用构造函数来实例化该类,即。使用关键字“new”,从而创造一个价值。
| 归档时间: |
|
| 查看次数: |
13351 次 |
| 最近记录: |