1

我对 Scala 很陌生,所以我为提出愚蠢的问题而道歉。我来自诸如 python、perl 等脚本语言,这些语言可以让你摆脱很多。

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

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

...或在 perl 中

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

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

4

2 回答 2

3

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

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

这样您就不必明确指定类型。关于不可变和可变之间的区别:一旦创建了不可变映射,就无法更改它。您只能在旧地图的基础上创建一个新地图,并更改一些元素。

于 2012-08-01T07:46:49.857 回答
1

在scala中,您可以创建一个地图,如果您想在创建时填充它,这样:

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

于 2012-08-01T07:31:55.387 回答