在 Dart 中创建扩展方法

Fab*_*zio 14 dart flutter

通常当我创建一个自定义类时,我可以创建一个使用该类作为参数的函数,例如:

class Sphere{
    double calculateRadius() {return 40.0;}
}
Run Code Online (Sandbox Code Playgroud)

所以我可以调用Sphere.calculateRadius()。

但是对于预先存在的类,例如 String 类,这是无法做到的。例如。我试过做这样的事情:

String.createFrom(String s){return "new";}
Run Code Online (Sandbox Code Playgroud)

但它不起作用(Android Studio 甚至不让我编译。)。

这可能吗,如果可能,我怎么能在 Dart 中做到这一点?如果我创建了它,我将如何访问我从中调用该方法的对象?(示例中的字符串)

Fab*_*zio 5

截至 2020 年 1 月,Dart 2.7 正式引入了扩展方法。要扩展一个类,可以这样做:

extension NewExtension on double {
  int get myMethod {
    return (1/this*10).toInt();
  }
}
Run Code Online (Sandbox Code Playgroud)