Dart ??= 在单例中的使用

7 min read
abstract class LibgopeedBoot {
  static const unixSocketPath = 'gopeed.sock';

  static LibgopeedBoot? _instance;

  static LibgopeedBoot get instance {
    _instance ??= LibgopeedBoot();
    return _instance!;
  }

  factory LibgopeedBoot() => create();

  Future<void> start();

  Future<void> stop();

  LibgopeedConfig get config;
}

??= 如果 _instance 不存在就会将 LibgopeedBoot()赋值给 _instance