Scala 创建地图的地图

Scala 创建地图的地图,scala,Scala,我对Scala很陌生,所以我很抱歉问了一些愚蠢的问题。我来自于python、perl等脚本语言,这些语言让您可以轻松自如 如何创建包含地图的地图?在Python中,我可以创建以下内容: { 'key': { 'data': 'value' }} …或使用perl %hash = ( 'key' => ( 'data' => 'value' )); 另外,Map和scala.collection.mutable/immutable.Map之间有什么区别?或者有什么区别?在scala

我对Scala很陌生,所以我很抱歉问了一些愚蠢的问题。我来自于python、perl等脚本语言,这些语言让您可以轻松自如

如何创建包含地图的地图?在Python中,我可以创建以下内容:

{ 'key': { 'data': 'value' }}
…或使用perl

%hash = ( 'key' => ( 'data' => 'value' ));

另外,Map和scala.collection.mutable/immutable.Map之间有什么区别?或者有什么区别?

在scala中,如果要在创建时填充贴图,可以通过以下方式创建:

val mapa = Map(key1 -> value1, key2 -> value2)
var mapOfMaps = Map[String, Map[Int, String]]()
mapOfMaps += ("english" -> Map(1 -> "one", 2 -> "two"))
mapOfMaps += ("french" -> Map(1 -> "un", 2 -> "deux"))
mapOfMaps += ("german" -> Map(1 -> "eins", 2 -> "zwei"))
另一种方法是:

var mapb = Map[Key, Value]()
mapb += key1 -> value1
可以通过以下方式创建地图地图:

val mapa = Map(key1 -> value1, key2 -> value2)
var mapOfMaps = Map[String, Map[Int, String]]()
mapOfMaps += ("english" -> Map(1 -> "one", 2 -> "two"))
mapOfMaps += ("french" -> Map(1 -> "un", 2 -> "deux"))
mapOfMaps += ("german" -> Map(1 -> "eins", 2 -> "zwei"))

请注意,在本例中,内部映射是不可变的。

在scala中,如果要在创建时填充映射,可以通过以下方式创建映射:

val mapa = Map(key1 -> value1, key2 -> value2)
var mapOfMaps = Map[String, Map[Int, String]]()
mapOfMaps += ("english" -> Map(1 -> "one", 2 -> "two"))
mapOfMaps += ("french" -> Map(1 -> "un", 2 -> "deux"))
mapOfMaps += ("german" -> Map(1 -> "eins", 2 -> "zwei"))
另一种方法是:

var mapb = Map[Key, Value]()
mapb += key1 -> value1
可以通过以下方式创建地图地图:

val mapa = Map(key1 -> value1, key2 -> value2)
var mapOfMaps = Map[String, Map[Int, String]]()
mapOfMaps += ("english" -> Map(1 -> "one", 2 -> "two"))
mapOfMaps += ("french" -> Map(1 -> "un", 2 -> "deux"))
mapOfMaps += ("german" -> Map(1 -> "eins", 2 -> "zwei"))

请注意,在本例中,内部映射是不可变的。

创建映射映射的更简单方法是:

Map("german"  -> Map(1 -> "eins", 2 -> "two"),
    "english" -> Map(1 -> "one",  2 -> "two"))

这样,您就不必显式地指定类型。关于不可变和可变之间的区别:一旦创建了不可变映射,就不能对其进行更改。您只能在旧地图的基础上创建一个新地图,并更改某些元素。

创建地图地图的简单方法:

Map("german"  -> Map(1 -> "eins", 2 -> "two"),
    "english" -> Map(1 -> "one",  2 -> "two"))

这样,您就不必显式地指定类型。关于不可变和可变之间的区别:一旦创建了不可变映射,就不能对其进行更改。您只能在旧地图的基础上创建一个新地图,其中一些元素已更改。

实际上,外部地图和内部地图都是不可变的,只有
mapofmap
引用不是。您是对的,但我想让他注意,在内部地图中更改元素并不是那么容易。实际上,外部映射和内部映射都是不可变的,只有
mapofmap
引用是不可变的。你是对的,但我想让他注意到,更改内部映射中的元素并不是那么容易。这只适用于在初始化时知道所有项的情况。这只适用于,如果您在初始化时知道所有条目。请注意:在静态类型语言中,映射的映射更为罕见。请注意:在静态类型语言中,映射的映射更为罕见。