Flutter 学习从零开始-Dart运算符

2020-07-28  本文已影响0人  風清雲少
描述 运算符
一元后缀 expr++ expr-- () [] . ?.
一元前缀 -expr !expr ~expr ++expr --expr
乘除 * / % ~/
加减 + -
位移 << >> >>>
按位与 &
按位或 |
按位异或 ^
关系和类型测试 >= > <= < as is is!
等于 == !=
逻辑与 &&
逻辑或 ||
如果空 ??
条件 expr1 ? expr2 : expr3
级联 ..
赋值 = *= /= ~/= %= += -= <<= >>= &= ^= ??=

除法和取整

var a= 3/2; // 1.5 java c =1 除法运算
var b= 3~/2; // 1 取整

算数运算符

++ a // a= a+1 表达式的值 a+1
var a = 1;
var b = ++a; //b= a =a+1 先计算后赋值给b
print(b);  // 2
b = a++;   // 先赋值给b
print(b);  // 2
print(a);  // 3

类型判断运算符

Operation
as 类型转化(也用指定类型前缀)
is 如果对象是指定类型则返回 true
is! 如果是指定类型则返回 false

?? 如果空 ?.如果不为空

var b;
b??=4; //如果b ==null 那么把4赋值给b 

var s;
print(s?.toString()); // null
s = "123"
print(s?.toString()); // 123

逻辑表达式 (短路操作)

&& 逻辑与   || 逻辑或   
var a;
if( a!=null && a.toString()){
}else{
  // a.toString() 不执行
}

条件表达式

condition ? expr1 : expr2 // 条件 ? 表达式1 :表达式2 如果true,执行表达式1,并返回结果。如果false 执行表达式2 并返回
expr1 ?? expr2 // 表达式1 ?? 表达式2 如果表达式1 为非null 则返回其值,否则执行表达式2 并返回其值

(..)级联运算符

class User {
    String name;
    int age;
    int sex;
}

User user = User();
user.name = "lilei";
user.age = 18;
user.sex = 0;

user..name="lilei" // 级联运算符
..age = 18
..sex = 0;

?. 条件访问成员

print(user?.name); // 如果user ==null 则返回null 如果user!=null 则返回 user.name
上一篇下一篇

猜你喜欢

热点阅读