列表深拷贝

  1. List arr = [1, 2, 3];
  2. List newArr = List.from(arr);
  3. newArr.add('4');
  4. print(arr);
  5. print(newArr);
  6. // 输出:
  7. // arr: [1, 2, 3]
  8. // newArr: [1, 2, 3, 4]

字典深拷贝

  1. Map obj = {
  2. 'name': 'jack',
  3. 'age': 18
  4. };
  5. Map newObj = Map.from(map);
  6. newObj['gender'] = 1;
  7. print(obj);
  8. print(newObj);
  9. // 输出:
  10. // obj: {'name': 'jack','age': 18}
  11. // newObj: {'name': 'jack','age': 18, 'gender': 1}

嵌套深拷贝

  1. List arr = [{
  2. 'name': 'rose',
  3. 'age': 20,
  4. }, {
  5. 'name': 'bense',
  6. 'age': 19
  7. }];
  8. List newArr = arr.map((v) => Map.from(v)).toList();
  9. newArr[0]['gender'] = 1;
  10. print(arr);
  11. print(newArr);
  12. // 输出:
  13. // arr: {'name': 'rose','age': 20,}, {'name': 'bense','age': 19}
  14. // newArr: {'name': 'rose','age': 20, 'gender': 1}, {'name': 'bense','age': 19}