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"))

この例では、内側のマップは不変であることに注意してください。

于 2012-08-01T07:31:55.387 に答える