创建地图的地图

时间:2012-08-01 07:18:26

标签: scala

我对Scala很新,所以我为提出愚蠢的问题而道歉。我来自脚本语言,如python,perl等,可以让你远离它们。

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

{ 'key': { 'data': 'value' }}

...或perl

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

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

2 个答案:

答案 0 :(得分:3)

创建地图地图的一种稍微简单的方法:

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

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

答案 1 :(得分:1)

在scala中,如果要在创建时填充它,可以创建一个Map:

val mapa = Map(key1 -> value1, key2 -> value2)

另一种方式是:

var mapb = Map[Key, Value]()
mapb += key1 -> value1

可以用这种方式创建地图地图:

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是不可变的。