3.Dart-运算符

/**

* 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");

  }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容