操作符
描述 | 操作符 |
一元后置操作符 | expr++ expr-- () [] . ?. |
一元前置操作符 | -expr !expr ~expr ++expr --expr |
乘除 | * / % ~/ |
加减 | + - |
移位操作符 | << >> |
按位与 | & |
按位异或 | ^ |
按位或 | | |
关系和类型判断 | >= > <= < as is is! |
是否相等 | == != |
逻辑与 | && |
逻辑或 | || |
是否为null | ?? |
三元表达式 | expr1 ? expr2 : expr3 |
级联操作符 | .. |
赋值符号 | = *= /= ~/= %= += -= <<= >>= &= ^= |= ??= |
1、as与is,都可以用来判断类型,is会返回true或false,as检测的类型不正确时会抛出异常
if (emp is Person) {
// Type check
emp.firstName = 'Bob';
}
(emp as Person).firstName = 'Bob'; //跟上面的效果相同
var str = "sdsdw";
(str as int); //抛出异常
赋值符号
a = 23; //直接赋值
b ??= 12; //如果b的值为null则赋值
级联操作符(..),允许你在一个对象上使用一系列的操作符
void main() {
var p = Person()
..name = "six"
..age = 24
..say();
}
class Person {
String name;
int age;
say() {}
}