どうも、ちょげ(@chogetarou)です。
Mapをコピーする方法を紹介します。
方法

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メソッドを使う方法
コメント