Dart 语言的空安全特性

一、背景

空安全是Dart 2.12版本新增的一项特性,可以有效地避免空指针异常的出现。事实上,空安全特性并不是Dart独有的,Kotlin、Swift、C#、TypeScript等语言都有此特性。在Dart语音中,空安全支持三条核心原则:

• 默认不可空:除非将变量显式声明为可空,否则它默认一定是要是非空的类型。

• 渐进迁移:开发者可以自由地选择迁移的时机,以及需要迁移的代码。并且,在一个项目中可能会同时存在空安全和非空安全的代码。

• 安全可靠:Dart的空安全在编译期间做了很多的性能优化。

由于Dar空安全是2.12 才提供的新功能,所以要在项目中使用空安全,需要在pubspec.yaml中添加版本配置,如下所示。

environment:
  sdk: '>=2.12.0 <3.0.0'

二、Nullable 和 non-nullable 类型

当你选择使用 null satety 特性时,所有的类型默认是非空的。例如如果声明了一个 String类型的变量,那么就意味着它一直包含字符串值。如果你想要一个 String 对象能够接收字符串值或null,那么就需要在类型声明后面加上?标识,一个声明为String?类型的变量可以包含字符串值或 null。

String? str1;
String str2;
// OK
str1 = null;
// 报错
str2 = null;
// OK
List<String?> str

猜你喜欢

转载自blog.csdn.net/xiangzhihong8/article/details/130883393