七:Flutter之Dart第四节(运算符)?
7: 运算符
这里我列举出相对比较特殊的运算符、你可能会疑惑Dart为什么要搞出那么多特殊的运算符、你要坚信一点就是所有这些特殊的运算符都是为了让我们在开发过程中更加方便的操作、而不是让我们的编码更加的复杂。
7.1: 除法(/)、整除(~/)、取模(%)运算
main(List<String> args) { // 运算符 // 1: 除法、整除、取模 var num = 7; // 除法 / // 2.3333333333333335 print(num / 3); // 整除 ~/ // 2 print(num ~/ 3); // 取模 % // 1 print(num % 3); }
7.2: ??= 赋值操作
dart有一个很多语言都不具备的赋值运算符:
- 当变量为null时、使用后面的内容进行赋值。
- 当变量有值时,使用自己原来的值。
main(List<String> args) { // 运算符 // 2: ??=赋值操作 打印结果: name2=lishengbing var name1 = 'lishengbing'; var name2 = null; name2 ??= name1; print('name2=$name2'); }
7.3: 条件运算符
Dart中包含一直比较特殊的条件运算符:expr1 ?? expr2
- 如果expr1是null、则返回expr2的结果;
- 如果expr2不是null、则直接使用expr1的结果;
// 运算符 // 3: 条件运算符 var temp = null; var name = temp ?? '我是temp2为null时候的默认值'; /// 我是temp为null时候的默认值 print(name);
7.4: 级联语法: ..
某些时候、我们希望对一个对象进行连续的操作、这个时候我们可以使用级联语法.
main(List<String> args) { // 4: 级联语法 // 某些时候、我们希望对一个对象进行连续的操作、这个时候我们可以使用级联语法. final p1 = Person(); p1.name = 'lishengbing'; p1.run(); p1.eat(); p1.swim(); print('----------------------'); lishengbing is running lishengbing is eating lishengbing is swiming ---------------------- lishengbing is running lishengbing is eating lishengbing is swiming // 级联用法, 只有一个分号 final p2 = Person() ..name = 'lishengbing' ..run() ..eat() ..swim(); } class Person { String name; void run() { print('${name} is running'); } void eat() { print('${name} is eating'); } void swim() { print('$name is swiming'); } }