dart深复制

List和map的深复制

deepClone(obj) {
  dynamic newObj = obj is Map ? {} : [];
  if (obj is Map) {
    obj.forEach((key, value) { 
       if (obj[key] is Map || obj[key] is List) {
        newObj[key] = deepClone(value);
      } else {
        newObj[key] = value;
      }
    });
  }else{
    for(int i=0;i<obj.length;i++){
      if (obj[i] is Map || obj[i] is List) {
        newObj.add(deepClone(obj[i]));
      } else {
        newObj.add(obj[i]);
      }
      
    }
  }
  return newObj;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、html和css部分1、如何理解CSS的盒子模型?标准盒子模型:宽度=内容的宽度(content)+ bord...
    这是这时阅读 3,003评论 0 5
  • 废话少说,本文分四个部分,css、js、知识点一、知识点二、React(部分问题没有给出答案,后续更新) css面...
    666同学阅读 4,790评论 0 0
  • 1.1、什么是HTML语义化?有什么好处? 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者...
    倾城一梦1123阅读 7,134评论 1 11
  • ECMAScript - 学习笔记 🎬 🧩nvm node.js 包管理工具 nvm github[https:/...
    Super三脚猫阅读 3,938评论 0 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,284评论 0 4