Skip to main content

如何调试代码

快速创建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 错误崩溃

空值断言操作符

  • 通过 ! 来告诉编译器这个参数不可空,在入参时特别有用