程序入口
程序的入口函数(必须有)。
void main() {
}
控制台输出
要在控制台输出,可使用print。
for (int i = 0; i < 5; i++) {
print('hello ${i + 1}');
}
变量
Dart是类型安全的。
创建和分配变量
String name = 'dart';
var otherName = 'Dart';
默认值
在Dart中,未初始化的变量是null。
数字在Dart中也会被当成对象,未初始化的默认值都是null。
var name;// == null
int x;// == null
检查null或零
在Dart中,只有布尔值“true”被视为true。
var myNull = null;
if(myNull == null) {
print('use "== null" to check null');
}
var zero = 0;
if(zero == 0) {
print('use "== 0" to check zero');
}
Dart null检查最佳实践
-
?. 运算符在左边为null的情况下会阻断右边的调用。
-
?? 运算符在左边表达式为null时,为其设置默认值。
-
??= 运算符在左边表达式为null是,将右边的值赋给左边。
print(null ?? false);//false
print(false ?? 11);//false
print(true ?? false);//true
技巧: 获取一个对象中数组的长度:searchModel?.data?.length ?? 0;
Functions
函数声明:
fn() {
return true;
}
bool fn() {
return true;
}
异步编程
- Future 对象表示异步操作的结果,我们通常通过then()来处理返回的结果
- async 用于标明函数是一个异步函数,其返回值类型是Future类型
- await 用来等待耗时操作的返回结果,这个操作会阻塞到后面的代码