Skip to content

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

MIT License