我试图找出在 Dart 中通过编译器/分析器支持避免未经检查地访问 null 的状态是什么。
在完成了几年的 TypeScript 之后,他们严格的 default-non-null 是在使代码更安全方面向前迈出的一大步。比起 Scala 的 Option-semantics,我更喜欢它。
是否有一个分析器选项能够通过流量分析追踪(所有)潜在的空访问?
例如,以下代码应该会失败:
void foo(String b) {
print(b.length);
}
void main() {
foo(null);
}
它应该报告如下:由于在第 6 行中传递了 null,因此第 2 行中未检查的 null 访问。
因此,作为开发人员,我可以决定修复第 1 行或第 2 行。