有人可以澄清以下代码的行为吗?
scala> val map = new collection.mutable.LinkedHashMap[String,collection.mutable.ArrayBuffer[String]]()
map: scala.collection.mutable.LinkedHashMap[String,scala.collection.mutable.ArrayBuffer[String]] = Map()
scala> val arr = map.getOrElse("Hi",None)
arr: Serializable with Equals = None
Run Code Online (Sandbox Code Playgroud)
为什么类型为Serializable的arr与Equals而不是ArrayBuffer [String]?
非常感谢!
因为你混淆了None哪种类型Option[Nothing]与其他东西,也许Nil?但它有类型List[Nothing],这也是错误的.要使编译正确,您应该写:
scala> map.getOrElse("Hi",ArrayBuffer.empty)
res3: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |