[Dart]Map(マップ)をコピーする方法

Dart

どうも、ちょげ(@chogetarou)です。

Mapをコピーする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Mapをコピーする方法は、3つあります。

1つ目は、「…」を使う方法です。

具体的には、コピー先の変数に「{…map}」(mapはコピー元)を代入します。

var copy = {...map} //mapはコピー元

使用例

void main() {
  var numbers = {
    'one': 1,
    'two': 2,
    'three': 3,
  };
  
  var copy = {...numbers};
  
  copy['four'] = 4;
  
  print(numbers); //{one: 1, two: 2, three: 3}
  print(copy); //{one: 1, two: 2, three: 3, four: 4}
}

from

2つ目は、fromを使います。

まず、Map.from()をコピー先に代入します。

そして、fromの引数にコピーするMapを指定します。

var copy = Map.from(map) //mapをコピー

使用例

void main() {
  var numbers = {
    'one': 1,
    'two': 2,
    'three': 3,
  };
  
  var copy = Map.from(numbers);
  
  copy['four'] = 4;
  
  print(numbers); //{one: 1, two: 2, three: 3}
  print(copy); //{one: 1, two: 2, three: 3, four: 4}
}

addAll

3つ目は、addAllメソッドを使う方法です。

まず、「{}..addAll()」をコピー先に代入します。

そして、addAlメソッドの引数にコピーするMapを指定します。

var copy = {}..addAll(map) //mapをコピー

使用例

void main() {
  var numbers = {
    'one': 1,
    'two': 2,
    'three': 3,
  };
  
  var copy = {}..addAll(numbers);
  
  copy['four'] = 4;
  
  print(numbers); //{one: 1, two: 2, three: 3}
  print(copy); //{one: 1, two: 2, three: 3, four: 4}
}

まとめ

Mapをコピーする方法は、次の3つです。

  • …を使う方法
  • fromを使う方法
  • addAllメソッドを使う方法

コメント

タイトルとURLをコピーしました