以下代码:

class Tools {
  static int roll(int min, int max) {
    // IMPLEMENTATION
  }

  static int roll(List<int> pair) {
    // IMPLEMENTATION
  }
}

在第二个roll函数上呈现The name 'roll' is already defined错误.

怎么会这样?既然函数的参数是不同的,难道不应该应用多态性吗?

编辑为了更好地反映主题,更正了标题.

推荐答案

您的代码演示的是函数重载,与多态性无关.

Function overloading is not supported in Dart at all.

您可以对方法使用不同的名称,也可以使用可选的命名参数或未命名参数

// optional unnamed
void foo(int a, [String b]);
...
foo(5);
foo(5, 'bar');

// optional named
void foo(int a, {String b});
...
foo(5);
foo(5, b :'bar');

可选参数也可以有默认值.

多态性和静态方法:

静态方法只能在不使用类名作为前缀的情况下从定义它们的类内部进行访问.从子类调用时,需要将超类的名称用作前缀.

Dart相关问答推荐

在 Dart 中使用隔离优于异步的优势

当 ng-repeat 嵌套在 AngularDart 中时访问外部 $index

我可以动态应用 Dart 的字符串插值吗?

Flutter - 可以在没有 Firebase 的情况下使用 Google 登录吗?

dart 中 call() 的实现是什么?

如何使用Flutter在按钮网格中滑动(swipe)/拖动(drag) 2 个或更多按钮

try 部署到 Google AppEngine 时出现 Dev_appserver.py 错误

Flatter中的Sqlite,数据库assets如何工作

为什么使用Dart作为前端开发人员?

Flutter:我应该在哪里调用 SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark)

如何在Dart中测试流

如何提取dart/Flutter视频元数据

无法使用 Flutter 调用 Localhost,将随机端口分配给 HTTP GET 调用

将Flutter的 PageView 与屏幕左侧对齐

如何平移和zoom 图像?

在 Dart 中切换失败

在 Dart 中,List.from 和 .of 以及 Map.from 和 .of 有什么区别?

在 Dart 中,你能不能从一个构造函数中调用另一个构造函数

dart中是否可以有一个私有构造函数?

Dart 如何获取枚举的value