操作符
- Dart和Java是在比较两个对象的时候操作符意义是不同的。
“==”: Java中表示比较地址。而Dart中表示比较内容。
Java中比较内容用的是对象方法equals()
Dart中比较地址用的是方法identical() - is:等同于java中的instance
- is!,表示不属于(非操作符!写在后面)
- as?:类型转换,转换失败就返回null。
- ??:空操作符。a??1,代表a为null的时候,返回1.否则返回a。(其实属于三元运算符的缩写,即a==null?a:1)
- 级联操作符**(…)**。允许在同一个对象上面做一系列的操作。
流程控制
- Dart中的switch语句可以用break,return,continue,rethrow,throw结束。
异常
- Dart的异常都是非检查异常。方法不会声明可能抛出的异常。
- Dart可以throw任何非空对象作为一个异常,而不仅仅是Exception和Error.
- Dart中catch可以捕获指定异常,也可以捕获任意异常(dynamic类型)。
和on联动可以指定异常类型,并捕获。如:
try{
}on TimeoutException catche(e,s){
print(e);打印异常e的信息
print(s);打印堆栈s
rethrow();重新抛出异常
}