函数
dart中万物皆对象,函数也是一个对象
代码语言:javascript
复制bool isNoble(int iNumber, String str='str'){ //普通函数,有参数、有返回值(若不指定表示返回值类型则为:dynamic);参数可以指定默认值
return iNumber != null;
}
bool isNoble => return iNumber != null; //箭头函数,有且只能有一个表达式
isNoble(iNumber:1,String:'ssd'); //调用
void foo() {} //无参数,无返回值
闭包
代码语言:javascript
复制Function makeAdd(num addBy) { //返回一个闭包
return (num i) => addBy i;
}
print(makeAdd(1).runtimeType); //输出:(num) => num
var fuc = makeAdd(1);
var fucc = makeAdd(2);
print(fucc(2)); //输出:3
print(fucc(2)); //输出:4
操作符
代码语言:javascript
复制~/ //整除
as //用于类型转换
~ii //~按位取反
??= //null赋值,a ??= 1 ,只有a等于null的时候才会被赋值为1.
级联调用 ..
代码语言:javascript
复制var sb = StringBuffer();
sb..write('foo')..write('foo');
sb.write('foo').write('foo'); //不成立且报错
异常
try catch,throw,rethrow,,finally
代码语言:javascript
复制void foo() {throw UnimplementedError();}
try{
foo();
}on UnimplementedError catch(e){ //捕获特定的异常
}catch(e,s){ //收集所有异常,参数s:调用栈 参数e:异常
}