Extension Methods 属于Dart高级用法。含义也非常容易理解,就是字面意思-拓展方法,用于给无法或不想直接修改的类或库拓展自己想要函数。

1 环境配置

Dart SDK的版本必须高于2.7.0
Flutter SDK版本最低要1.12.13
同时需要在pubspec.yaml同级创建analysis_options.yaml文件,里面配置:

  1. analyzer:
  2. enable-experiment:
  3. - extension-methods

2 用法

  1. extension <extension_name> on <type> {
  2. (<member_definition>)*
  3. }

示例用String扩展一个打印方法

  1. extension StringEx on String{
  2. printMyself(){
  3. print("printMyself---" + this);
  4. }
  5. }
  1. void _incrementCounter() {
  2. setState(() {
  3. _counter++;
  4. // 这个title的类型是StringEx
  5. widget.title.printMyself();
  6. });