如何调试代码
快速创建Widget
stf
stl
- stf 是 stateful 的缩写
- stl 是 stateless 的缩写
快速修复
- ctrl + .
打印
print('123');
debugPrint('123');
- print 在内容过多时,会被 Android 丢弃一些
- debugPrint 在内容过多时,可以分批输出
断点
void someFunction(double offset) {
debugger(when: offset > 30.0);
}
打印树
debugDumpApp(); // Widget树
debugDumpRenderTree(); // 渲染树
debugDumpLayerTree(); // Layer树
debugDumpSemanticsTree(); // 语义树
异常捕获
try {} catch (e) {}
空安全(null-safety)
class CommonModel {
String? firstName; //可空的成员变量
int getNameLen(String? lastName /*可空的参数*/) {
int firstLen = firstName?.length ?? 0;
int lastLen = lastName?.length ?? 0;
return firstLen + lastLen;
}
}
- 通过区分可空类型和非可空类型,有效避免 null 错误崩溃
空值断言操作符
- 通过 ! 来告诉编译器这个参数不可空,在入参时特别有用