美文网首页
3.Dart-运算符

3.Dart-运算符

作者: 你的胡霸霸 | 来源:发表于2021-09-01 11:44 被阅读0次

    /**

    * 1.Dart运算符和其他语言一样

    *  算术运算符

    *      +(加)  -(减)  *(乘)  /(除)  ~/(取整)  %(取余)

    *

    * 关系运算符

    *      ==(等于)    !=(不等于)    > (大于)    <(小于)    >=(大于等于)    <=(小于等于)

    *

    * 逻辑运算符

    *      !    &&    ||

    *

    * 赋值运算符

    *    基础赋值运算符  =    ??=

    *    复合赋值运算符  +=  -=  *=  /=  %=  !/=

    *

    * 自增 ++

    * 自减 --

    * 在赋值运算中,如果++, --写在前面就是先运算,后赋值, 写在后面就是先赋值后运算

    *

    * 条件表达式

    * if else    switch case

    * 三目运算符  a ? b : c

    *  ??运算符

    */

    main(List<String> args) {

      // specialExample();

      // numberAndStringExchange();

      othersTransformBool();

    }

    // 这里是 ??=  和  ??的使用

    void specialExample() {

      int b;

      print(b); //声明了一个变量, 没有赋值那个这个变量的值是 null,哪怕你已经声明了类型, 在js中是undefined

      //  ??= 表示如果b为空值, 那么b就等于25

      b ??= 25;

      print(b);

      // ?? 运算符,

      var a;

      // 下面的例子的意思是  ??直接先看a是不是为空null, 如果a是空,那么就把30赋值给c ,如果a不是空null,那么就把a的值赋值给c

      var c = a ?? 30;

      print(c);

    }

    // Number和String的类型转换

    void numberAndStringExchange() {

      // Number类型转成String类型toString()

      var n = 100;

      var s = n.toString();

      var sb = s is String;

      print("s是字符串类型 $sb");

      // String类型转成Number类型, parse

      String str = "124";

      var num1 = int.parse(str);

      var num2 = double.parse(str);

      var bl = num1 is int;

      print('num1=$num1, num1 is int = $bl');

      print(num2);

      String str1 = "124.3";

      // 这里会报错, 浮点类型的字符串不能用int.parse去转换,要用double,主义类型的对应

      // var num3 = int.parse(str1);

      // 这里我们可以使用try catch来兜住这异常

      var num3;

      try {

        num3 = int.parse(str1);

      } catch (e) {

        print(e);

        num3 = double.parse(str1);

      }

      print('num3 = $num3');

    }

    // 其他类型转换成Bool类型

    void othersTransformBool() {

      var str = ""; //代表空字符串

      // 判断字符串是不是空,""这样的就是空字符串

      var emp = str.isEmpty;

      if (emp) {

        print("str是空字符串=$str");

      } else {

        print("str不是空字符串=$str");

      }

    // 未赋值的变量是null

      var nu;

      if (nu == null) {

        print("nu是$nu");

      } else {

        print("nu=$nu");

      }

    // 注意: 这里和js等其他语言不一样, 其他语言直接可以if(str)这样, 有一个默认的类型转换,

    // 但是Dart里面bool值不和其他类型转换的, 只能比较, 空字符串是"",可以用isEmpty来判断,

    // 数字0,也是需要 ==0这样去比较, null值,也是==null进行比较得到bool值

      // 这里还有个特殊的就是NaN,非数字, 比如0不能作为除数

      var x = 0 / 0; //这里不会报错,返回的是一个非数字NaN

      if (x.isNaN) {

        print("x是非数字$x");

      } else {

        print("x是数字$x");

      }

    }

    相关文章

      网友评论

          本文标题:3.Dart-运算符

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