0

我试图找出在 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 行。

4

1 回答 1

0

目前没有这样的支持。

Dart 语言团队正在积极致力于向 Dart 类型系统添加不可为空的类型。这将是一个重大变化,因此不会在前几个季度完成。

于 2019-03-29T06:32:18.983 回答