zoukankan      html  css  js  c++  java
  • 深拷贝

    https://stackoverflow.com/questions/21744480/clone-a-list-map-or-set-in-dart

    2

    For lists and sets, I typically use

    List<String> clone = []..addAll(originalList);
    

    The caveat, as @kzhdev mentions, is that addAll() and from()

    [Do] not really make a clone. They add a reference in the new Map/List/Set.

    That's usually ok with me, but I would keep it in mind.

    =======================================================================================================

    This solution should work:

    List list1 = [1,2,3,4];

    List list2 = list1.map((element)=>element).toList();

    It's for a list but should work the same for a map etc, remember to add to list if its a list at the end

     +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    LIst 多层情况下的addall, map表现, (无效); 还是循环到最底层生效了...

    import 'dart:io';
    import 'dart:convert';
    import 'dart:math';

    main(){
    List startList = [];
    startList.addAll(spareParts[Random().nextInt(7)]);

    print(startList);
    startList[0][0] = 999;
    print(';;;;;;;;;;;;;;;');
    print('startList $startList');
    print('spareParts $spareParts');

    List ddd = startList.map((v)=>v).toList();
    print('ddd: $ddd');
    ddd[0][0] = 88888;
    print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
    print('ddd: $ddd');
    print('startList $startList');
    print('spareParts $spareParts');
    print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
    ddd = [[],[],[],[]];
    for(int y=0; y<4; y++){
    for(int x=0; x<4; x++){
    ddd[y].add(startList[y][x]);
    }
    }

    print('ddd$ddd');
    print('startList $startList');
    print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
    ddd[0][0] = 555555555;


    print('ddd$ddd');
    print('startList $startList');
    print('mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm');
    }


    List spareParts = [
    [[0,1,0,0],
    [0,1,0,0],
    [0,1,0,0],
    [0,1,0,0]],

    [[0,0,0,0],
    [0,1,0,0],
    [1,1,1,0],
    [0,0,0,0]],

    [[0,0,0,0],
    [1,1,1,0],
    [0,0,1,0],
    [0,0,0,0]],

    [[0,0,0,0],
    [0,1,1,1],
    [0,1,0,0],
    [0,0,0,0]],

    [[0,0,0,0],
    [1,1,0,0],
    [0,1,1,0],
    [0,0,0,0]],

    [[0,0,0,0],
    [0,0,1,1],
    [0,1,1,0],
    [0,0,0,0]],

    [[0,0,0,0],
    [0,1,1,0],
    [0,1,1,0],
    [0,0,0,0]],
    ];


    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • 相关阅读:
    信息捕获木马运行操作思路
    Linux常用命令清单
    绕过cdn查找真实IP
    kali中文乱码三步解决,简洁高效!
    火狐浏览器控制台的玩法
    k8s pod 权限配置
    Linux运维企业架构实战系列
    企业级自动化运维工具应用实战-ansible
    k8s pod排错指南
    基于Centos7 部署kubernetes v1.21.3 实践(高阶)
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10853773.html
Copyright © 2011-2022 走看看