空安全飞镖中的可选参数是否自动可为空?如果不是,是否有一种简单的方法可以使我的代码为 null 安全?
Are optional parameters in null-safe dart automatically nullable? If no, is there an easy way to make my code null-safe?
我注意到 Dart/Flutter 标签上有更多用户在较新的 Dart SDK 版本中尝试空安全,我开始阅读相关内容,从 this Medium article.
开始
我注意到在他们的所有示例中,他们都使用位置必需的参数。但是空安全性如何与可选参数一起工作,包括位置参数和命名参数?
可选参数本质上是 null
那么这是否意味着所有可选参数都必须使用可空变量声明语法声明并启用空安全?添加 ?
似乎只是一个小小的不便,但它可能会破坏大量自由使用可选参数的代码。 dart 是否能够对可选参数进行例外处理(知道它们始终可以为空),从而避免如此大的更改?或者是否有更简单的替代方法来使我的代码空值安全兼容,从而避免这些更改?
在 null safe Dart 中,实际可选参数必须具有默认值,或者它们必须可以为空(在这种情况下它们具有默认的默认值 null
)。
也不例外。由于默认值,可选参数本身不能为 null。
您不应期望现有代码按原样使用空安全。您应该将代码迁移为 null 安全。
使 代码空安全的最简单方法是运行 dart migrate
对您的项目。它将为您插入大部分必要的 ?
。
我注意到 Dart/Flutter 标签上有更多用户在较新的 Dart SDK 版本中尝试空安全,我开始阅读相关内容,从 this Medium article.
开始我注意到在他们的所有示例中,他们都使用位置必需的参数。但是空安全性如何与可选参数一起工作,包括位置参数和命名参数?
可选参数本质上是 null
那么这是否意味着所有可选参数都必须使用可空变量声明语法声明并启用空安全?添加 ?
似乎只是一个小小的不便,但它可能会破坏大量自由使用可选参数的代码。 dart 是否能够对可选参数进行例外处理(知道它们始终可以为空),从而避免如此大的更改?或者是否有更简单的替代方法来使我的代码空值安全兼容,从而避免这些更改?
在 null safe Dart 中,实际可选参数必须具有默认值,或者它们必须可以为空(在这种情况下它们具有默认的默认值 null
)。
也不例外。由于默认值,可选参数本身不能为 null。
您不应期望现有代码按原样使用空安全。您应该将代码迁移为 null 安全。
使 代码空安全的最简单方法是运行 dart migrate
对您的项目。它将为您插入大部分必要的 ?
。