Dart神奇类型mixin有什么用?如何定义和使用?

Dart 中,有一个神奇的类型,叫做 mixin。

它和 class 比较类似,但它没有构造函数。

通过 mixin,可以扩展一个类的属性和功能,使得类具有 Mixin 类的属性和函数 API。

mixin Musical {
  bool canPlayPiano = false;
  bool canCompose = false;
  bool canConduct = false;

  void entertainMe() {
    if (canPlayPiano) {
      print('Playing piano');
    } else if (canConduct) {
      print('Waving hands');
    } else {
      print('Humming to self');
    }
  }
}
复制代码