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
后就可以不用在构造函数的时候初始化了