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]],
    ];


    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • 相关阅读:
    Gartner:当商业智能成熟度低时,如何加快分析采用率
    年薪50万的大数据分析师养成记
    数据化管理在餐饮业中的应用
    linux下查看本机socket端口详细信息
    nginx模块编程之获取客户ip及端口号
    大小端模式转换函数
    Nginx代码调试——gdb工具
    Nginx入门之两种handler函数的挂载方式
    Nginx重要结构request_t解析之http请求的获取
    Nginx_handler模块发开(hello模块结构解析)
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10853773.html
Copyright © 2011-2022 走看看