如何在 Dart 中使用扩展

Ren*_*zek 2 dart flutter

最近在 Dart 2.6 中发布了扩展功能。我想测试它,我编写了以下代码

extension on DateTime {
    String string(String pattern) {
       try {
          return new DateFormat(pattern).format(this);
       } catch (e) {
          return null;
       }
    }
 }
Run Code Online (Sandbox Code Playgroud)

我可以在安静地创建扩展的同一文件中调用DateTime.now().string('dd');,但是,我无法在该文件之外的任何其他函数中进行相同的调用。我做错了什么以及如何正确使用它们?

And*_*eev 5

只需给你的扩展命名就可以了:

extension MyExtension on DateTime {
    String string(String pattern) {
       try {
          return new DateFormat(pattern).format(this);
       } catch (e) {
          return null;
       }
    }
 }
Run Code Online (Sandbox Code Playgroud)