• Flutter循序渐进==>数据结构(列表、映射和集合)和错误处理


    导言

    填鸭似的教育确实不行,我高中时学过集合,不知道有什么用,毫无兴趣,等到我学了一门编程语言后,才发现集合真的很有用;可以去重,可以看你有我没有的,可以看我有你没有的;列表是我最喜欢的数据结构,我最喜欢把列表和元组结合起来用,比如[(张飞,刘备集团),(贾诩,曹操集团)]。映射,也就是Python里面的字典,也是我的最爱之一!让学习变得有趣起来,就用三国混战来举例吧!

    列表映射和集合出场

    错误处理

    //叫一个没来的将领,会发生什么?
    try{
      String myGengeral = generalInfo['马超'];
    }catch(e){
      print('出错:$e');
    }
    

    出错:type 'Null' is not a subtype of type 'String'

    代码

    1. void main(){
    2. print('***************************列表**********************************');
    3. List<String> generals = ['赵云','吕布','典韦','夏侯惇','赵云'];
    4. String liubeiGroup = generals[0];
    5. print('刘备集团将领有:$liubeiGroup');
    6. //典韦要保护曹操的,换曹仁出场
    7. generals[2] = '曹仁';
    8. print('曹操换人后,出场混战的将领有:$generals');
    9. //孙权说:“你们又不带我玩?我要派甘宁来参加!”
    10. generals.add('甘宁');
    11. print('孙权加人后,出场混战的将领有:$generals');
    12. //曹操说:“像吕布这种小人,不要让他入场,必须德才兼备才有资格入场!”
    13. generals.remove('吕布');
    14. print('移除人品差的后,出场混战的将领有:$generals');
    15. //组委会主席汉献帝说:“让我统计下参赛选手数量,听我念名单依次入场!”
    16. print('汉献帝宣布:总决赛出场混战的将领总共有:${generals.length}位!');
    17. for (String general in generals){
    18. print('请入场:$general!');
    19. }
    20. print('***************************映射**********************************');
    21. Map<String,dynamic> generalInfo = {
    22. '名字':'赵云',
    23. '公司':'刘备集团',
    24. '性别':'男',
    25. };
    26. print('性别有点多余');
    27. generalInfo.remove('性别');
    28. print(generalInfo);
    29. print('第一个出场的是${generalInfo['名字']}');
    30. //自我介绍了说了名字么?
    31. print('${generalInfo.containsKey('名字')}');
    32. List<String> keys = generalInfo.keys.toList();
    33. print(keys);
    34. List<dynamic> values = generalInfo.values.toList();
    35. print(values);
    36. generalInfo.forEach((key,value){
    37. print('$key:$value');
    38. });
    39. print('***************************集合**********************************');
    40. Set<String> newGenerals = {'刘备','张飞','关羽','关羽'};
    41. print(newGenerals);
    42. //上面那个列表里面,赵云报了两次名,这是不行的
    43. List<String> uniGenerals = generals.toSet().toList();
    44. print(uniGenerals);
    45. }

  • 相关阅读:
    C语言实现一个简单的点歌系统
    Ae 效果:CC Cross Blur
    freeCAD不合并导入step文件
    音视频图像篇 YUV-RGB
    winform语言切换C#设计笔记(八)
    邦芒攻略:面试迟到该如何补救
    14:00面试,14:06就出来了,问的问题有点变态。。。
    桥梁结构健康监测系统落地方案
    戴尔电脑怎么关闭开机密码?
    Protocol Buffers教程
  • 原文地址:https://blog.csdn.net/simazhao/article/details/139842028