美文网首页
Dart/Flutter基础-变量,运算符

Dart/Flutter基础-变量,运算符

作者: SoundYoung | 来源:发表于2019-08-16 11:13 被阅读0次
    刚学flutter准备把遇到的坑,分享出来,自己也做个记录
    
    dart语言基础 ,基本数据类型和一些集合操作,循环遍历等等
    
    
    
    testDart
    
    () {
    
      //dart中的一些基本数据和基本操作
    
      var testMap = {
    
        'title': 'my love',
    
        'author': 'liwei',
    
        'mainpersion': ['xiaoli', 'xiaoz', 'xiaowang']
    
      }; //类似json
    
      List list = testMap['mainpersion'];
    
      print('里面的主要角色有 ${list[1]}');
    
      if (list is List) {
    
        print("true");
    
      }
    
      int a = 6;
    
      int b = 4;
    
      print(a / b); //除
    
      print(a % b); //取余
    
      print(a ~/ b); //取整
    
      //赋值运算 ??= 表示dang stra的值是空的时候把10赋值给stra
    
      String stra;
    
      stra ??= "10";
    
      print('stra的值' + stra);
    
      //赋值和运算符号组合
    
      var acount = 10;
    
      acount += 10;
    
      print("acount的值" + acount.toString());
    
      //三元运算符
    
      var xb = '女';
    
      var flag = false;
    
      xb = flag ? '女' : '男';
    
      switch (xb) {
    
        case '男':
    
          print('他是一个男人');
    
          break;
    
        default:
    
          print('她是一个女人');
    
      }
    
      //??运算符
    
      var aw;
    
      var bw;
    
      aw = bw ?? 20; //如果bw不是空,把bw赋值给aw,否则,aw等于20
    
      print("aw的值---" + aw.toString());
    
      //值转换 number和string 之间的转换
    
      String abc = "123.1";
    
      double bba = double.parse(abc) + 1;
    
      print(bba.toString());
    
      String price;
    
      try {
    
        double bba = double.parse(price) + 1;
    
        print(bba.toString());
    
      } catch (err) {
    
        print('0' + err.toString());
    
      }
    
      if (price == null || price.isEmpty) {
    
        print('price 为空的');
    
      } else {
    
        print("price 不为空");
    
      }
    
      //const与final的区别 final不仅仅有const编译常量的特性,final还是运行时的常量,可以第一次不赋值,执行前赋值即可
    
      final now = new DateTime.now();
    
      print('当前时间' + now.toString());
    
      // const now_cow = new DateTime.now();//报错
    
      //++ 和 -- 与java不同,aii都会加1,无论++加在前面还是后面
    
      int aii = 10;
    
      ++aii;
    
      print("++aii后的值" + aii.toString());
    
      aii++;
    
      print("aii++后的值" + aii.toString());
    
      //另外一种情况
    
      int bii;
    
      bii = aii++;
    
      print('aii的值' + aii.toString());
    
      //发现bii的值并没有加一,因为是先把aii的值赋给bii,
    
      //然后aii自己进行++操作,如果写成bii=++aii;那么bii就会加1
    
      print('bii的值' + bii.toString());
    
    }
    
    //dart中的集合操作
    
    void testJh() {
    
      //list的常用属性
    
      List fruitList = ['苹果', '香蕉', '桃子'];
    
      fruitList.add('西瓜'); //添加
    
      print('list的长度' + fruitList.length.toString());
    
      print('翻转list--' + fruitList.reversed.toString());
    
      List reList = fruitList.reversed.toList(); //tolist必须
    
      print('翻转赋值后的第一个值' + reList[0]);
    
      print(reList.isEmpty);
    
      //list常见方法
    
      reList.addAll(['桃子', '芒果']);
    
      print(reList.indexOf('苹果'));
    
      print(reList.indexOf('榴莲')); //查找不到返回-1,可以用此方法,判断是否有特定的数据
    
      print('removeat前的结果' + reList.toString());
    
      reList.removeAt(3);
    
      reList.remove('香蕉');
    
      print('removeat后的结果' + reList.toString());
    
      //修改list中的数据 把西瓜改成watermelon
    
      reList.fillRange(0, 1, 'watermelon');
    
      print('修改后的list--' + reList.toString());
    
      reList.insert(2, "栗子");
    
      print('插入后的list--' + reList.toString());
    
      reList.insertAll(2, ['菠萝', '山竹']);
    
      print('插入后的list--' + reList.toString());
    
      String mystr = reList.join('-').toString();
    
      print('添加分隔符转换' + mystr);
    
      String spliStr = mystr.substring(0, 19);
    
      reList = spliStr.split('-');
    
      print(reList);
    
      /*Set 无序,不能重复 list是可以重复的*/
    
      var myset = Set();
    
      myset.add('香蕉');
    
      myset.add('香蕉');
    
      myset.add('苹果');
    
      print(myset.toString()); //输入结果为{香蕉, 苹果}
    
      print('myset-first-' + myset.first);
    
      // 可以用此特性为list去重
    
      reList.add('泥猴桃');
    
      reList.add('泥猴桃');
    
      print('没去重之前的list' + reList.toString());
    
      Set filterSet = reList.toSet();
    
      print("去重之后的list" + filterSet.toList().toString());
    
      /*map使用 类似json对象 */
    
      Map demoMap = new Map();
    
      demoMap['name'] = "李四";
    
      demoMap['ago'] = 20;
    
      demoMap['sex'] = '男';
    
      // Map map = {
    
      //  'name':'张三',
    
      //  'age':20,
    
      //  'sex':'男'
    
      // };
    
      print(demoMap.isEmpty);
    
      print(demoMap.values.toList());
    
      print(demoMap.values.toList()[1]);
    
      print(demoMap.keys.toList());
    
      print(demoMap.length);
    
      //map添加数据
    
      demoMap.addAll({
    
        'habit': ['篮球', '足球'],
    
        'loc': '杭州'
    
      });
    
      print("map添加数据后--" + demoMap.values.toList().toString());
    
      demoMap.remove('age');
    
      print("map删除数据后--" + demoMap.values.toList().toString());
    
      if (demoMap.containsValue('杭州')) {
    
        print('他是杭州人');
    
      } else {
    
        print('他不是杭州人');
    
      }
    
      if (demoMap['habit'].toString().contains('篮球')) {
    
        print('${demoMap['name']}喜欢篮球');
    
      } else {
    
        print('${demoMap['name']}不喜欢篮球');
    
      }
    
      List personList = new List();
    
      personList.add(demoMap);
    
      print('我是' + personList[0]['name']);
    
      /*list map set 的 forEach map  where  any every方法 */
    
      //list三种数据循环方式
    
      // for(int i=0;i<fruitList.length;i++) {
    
      //  print(fruitList[i]);
    
      // }
    
      // for(var item in fruitList) {
    
      //  print(item);
    
      // }
    
      fruitList.forEach((value) {
    
        //forEach后面跟的是一个方法,我这里使用了一个没有名字的方法
    
        print(value);
    
      });
    
      List numList = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    
      final doubleNumList = numList.map((value) {
    
        //map的用法就是,修改列表的每一项,返回一个新的list,用var 或者final 修饰
    
        return value * 2;
    
      });
    
      print("用map方法给每一个值*2" + doubleNumList.toString());
    
      var whereList = numList.where((value) {
    
        //where的用法就是,判断条件,返回一个满足条件的新的list
    
        return value > 6;
    
      });
    
      print("用where 输入大于6" + whereList.toString());
    
      var isHaveOne = numList.any((value) {
    
        //如果list集合中有一个大于6的数据,则返回true
    
        return value > 6;
    
      });
    
      print("用any判断集合中是否有至少一个大于6的item--" + isHaveOne.toString());
    
      var isAll = numList.every((value) {
    
        //如果list集合中所有数据都大于6,则返回true,否则返回false
    
        return value > 6;
    
      });
    
      print("用any判断集合中是否有至少一个大于6的item--" + isAll.toString());
    
      //set循环 转换成list进行遍历,或者用foreach  下面这种不行
    
      //  for(int x=0;x<myset.length;x++) {
    
      //    print(myset[x].toString());
    
      //  }
    
      //map循环
    
      demoMap.forEach((key, value) {
    
        print('map-key-' + key + '--map-vaule---' + value.toString());
    
      });
    
    }

    相关文章

      网友评论

          本文标题:Dart/Flutter基础-变量,运算符

          本文链接:https://www.haomeiwen.com/subject/xddfsctx.html