Dart18新特性
Dart18新特性
空安全
空安全(Sound null safety)是 Dart 2.12 中新增的一项特性
environment:
sdk: ">=2.12.0 <3.0.0"
在没有空安全前,这句代码是没有问题的。
String name = null;
如果想给一个变量赋值 null 要如何处理?只需在类型后面添加 ? 即可
String? name = null;
print('name length:${name?.length}');
操作符 ! 表示当前变量不为 null,开发者需要保证变量不为 null,否则会抛出异常。
String? name = null;
print('name length:${name!.length}');
在集合中:
List<String> list;
List<String>? list1;
List<String?> list2;
List<String?>? list3;
他们的区别就是是否可为 null 的区别:
类型 | 集合是否可为null | item是否可为null |
---|---|---|
List | 否 | 否 |
List? | 是 | 否 |
List<String?> | 否 | 是 |
List<String?>? | 是 | 是 |
late
假设有一个属性,此属性的值来源于服务器或者其他方法,那么此时无法给此属性进行初始化,代码如下:
late String name;
void _incrementCounter() {
name = '123';
print('name length:${name.length}');
}
late:表示延迟初始化,通常用于延迟加载(比如网络请求),late 声明的变量在使用前一定要进行初始化。
@required
可以通过 @required 来注解 Dart 中的命名参数,用来指示它是必填参数
import 'package:meta/meta.dart';
void main() {
sendMsg(content: "hello", to: "jack");
}
void sendMsg({@required String content, String to}) {
print("send msg $content, to $to");
}
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果