如何在scala中表示未初始化(也称为null)的Map

jav*_*dba 1 null scala map

如何在scala中为集合表示null?

List的等价物将是"Nil",它将表示如下:

Nil.asInstanceOf[Map[String,String]]
Run Code Online (Sandbox Code Playgroud)

地图的等价物是什么?

更新 我所知道的两个工作解决方案,从实验以及建议的解决方案是"Map()"和"null.asInstanceOf(Map [String,String])".Map()不是我想要的:我不想要一个空项,但实际上不存在(在java中也称为null).我已经知道Nil仅用于列表:它旨在说明我正在搜索Map实际使用的实体的味道.使用"null.asInstanceOf(..)"不是一个scala-ish习语.它似乎没有Map的等价物.?

fla*_*ian 10

最好的方法是:

val x = Map.empty[String, String]
Run Code Online (Sandbox Code Playgroud)

使用可变映射:

import scala.collection.mutable.{ Map => MMap }

val y = MMap.empty[String, String]
Run Code Online (Sandbox Code Playgroud)


dhg*_*dhg 7

Nil只是空洞的List.它与null任何方式无关.

Scala null和Java一样,但几乎总是应该避免使用它.

你的实际目标是什么?

你想要一张空地图吗?

val m = Map[String,String]()
Run Code Online (Sandbox Code Playgroud)

或者可以添加到空的可变地图?

val m = collection.mutable.Map[String,String]()
Run Code Online (Sandbox Code Playgroud)

或者Option[Map]可以在以后初始化?

val m: Option[Map[String,String]] = None
Run Code Online (Sandbox Code Playgroud)

或者实际上是null

var m: Map[String,String] = null
Run Code Online (Sandbox Code Playgroud)