2

我注意到有更多用户使用 Dart/Flutter 标签在较新的 Dart SDK 版本中尝试 null 安全性,我开始阅读它,从这篇 Medium 文章开始。

我注意到在他们的所有示例中,他们都使用了位置所需的参数。但是 null 安全性如何与可选参数(包括位置参数和命名参数)一起工作?

可选参数是固有的null,这是否意味着所有可选参数都必须使用可空变量声明语法声明并启用空安全?add 似乎只是一个小小的不便?,但它可能会破坏大量使用可选参数的代码。dart 是否能够对可选参数进行例外处理(知道它们总是可以为空的),从而避免如此大的变化?或者是否有更简单的替代方法可以使我的代码与 null 安全兼容,从而避免这些更改?

4

1 回答 1

5

在 null 安全 Dart 中,实际的可选参数必须具有默认值,或者它们必须可以为空(在这种情况下,它们具有默认的默认值null)。

也不例外。由于默认值,可选参数本质上不能为空。

您不应期望现有代码按原样使用 null 安全性。您应该对代码进行迁移以确保为空安全。

使您的代码为 null 安全的最简单方法是dart migrate在您的项目上运行。它将?为您插入大部分必要的 s。

于 2020-07-16T06:47:44.977 回答