2021-12-15 Dart语言知识点

1、静态变量(类变量和全局变量)是延迟初始化的。

class Cat {}

class DeadCat extends Cat {
  DeadCat() {
    print("Now I am dead.");
  }
}

class LiveCat extends Cat {
  // 类变量
  static DeadCat? afterDie = DeadCat();

  LiveCat() {
    print("I am alive!");
  }
}

// 全局变量
Cat cat = LiveCat();

main() {
  LiveCat.afterDie = null;
  cat = Cat();
  print("Hello world!");
}

日志输出:

flutter: Hello world!

上述 DeadCat 和 LiveCat 的构造方法都没有执行,只有真正访问静态变量时,才会执行对应代码。

main() {
  LiveCat.afterDie;
  cat;
  print("Hello world!");
}

日志输出:

flutter: Now i am dead.
flutter: I am alive!
flutter: Hello world!

你可能感兴趣的:(2021-12-15 Dart语言知识点)