你如何在 Dart 中选择退出 null 安全?

cre*_*not 2 dart dart-null-safety

从 Dart 开始2.12.0,默认情况下启用空安全

关于“启用空安全”部分的dart.dev说明如下:

将 SDK 约束设置为需要具有空安全支持的语言版本。例如,您的 pubspec.yaml 文件可能具有以下约束:

environment:
 sdk: ">=2.12.0-0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

那么既然它默认启用了,当我们的 SDK 约束有 时,我们>=2.12.0-0如何选择退出空安全并像以前一样编写代码?
我们可能需要像这样的 Dart 版本来实现不同的语言功能,但不想使用 NNBD。

cre*_*not 5

有没有办法在于使用飞镖文件使用NNBD >=2.12.0=0
因此,您只有两种选择退出空安全:

逐个文件选择退出

即使您的最小 SDK 约束是>=2.12.0=0,您也可以使用每个库语言版本选择来选择退出单个文件。

任何导入等之前的文件最顶部,您可以指定整个文件应使用的 Dart 版本:

// @dart=2.11
import 'dart:math';
...
Run Code Online (Sandbox Code Playgroud)

这样,该文件将能够通过使用 Dart 2.11 选择退出空安全。

降低 SDK 约束

如果您降低 Dart SDK 约束低于2.12.0-0,则默认情况下您将选择退出空安全:

environment:
 sdk: ">=2.11.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

通过阅读关于dart.dev.