Dart空安全的原则
- 默认不可空
- 渐进迁移
- 安全可靠
- 可为空
dart
String? title;expr!:开发人员主观上保证值不为空,但程序不能保证有值
dart
String newTitle = title!;?.:不为空才执行
dart
String? title;
// String? title = 'test';
bool? isEmpty = title?.isEmpty;??:如果空才执行,通常用于设置默认值
dart
String? title;
String newTitle = title ?? 'default';late声明
- 普通变量延迟初始化
dart
late String title;
void main(List<String> args) {
title = 'dart';
print(title);
}- 类成员变量延迟初始化
dart
class WPHttpService extends GetxService {
late final Dio _dio;
@override
void onInit() {
...
_dio = Dio(options);
...
}
}加上
late后就可以不用在构造函数的时候初始化了