我读到DART不支持函数重载.它是否支持操作符重载?如果是,你能用一个简单的例子告诉我是怎么做的吗?有什么优势等吗?

推荐答案

在新版本中使用==运算符try 重载时, Select 的答案不再有效.现在您需要这样做:

class MyClass {
  @override
  bool operator ==(other) {
    // compare this to other
  }
}

但这不安全.other未指定为类型,可能会发生意外情况.例如:

void main() {
  var a = A(1);
  var b = B(1);
  var result = a == b;
  print(result); //result is true
}

class A {
  A(this.index);

  final int index;

  @override
  bool operator ==(other) => other.index == index;
}

class B {
  B(this.index);

  final int index;
}

所以你可以这样做:

class A {
  A(this.index);

  final int index;

  @override
  bool operator ==(covariant A other) => other.index == index;
}

你需要用covariant美元.因为对象重载了==运算符.

or you can

Test Object Type:
visit: hash_and_equals

class A {
  A(this.index);

  final int index;

  @override
  bool operator ==(other) => other is A && (other.index == index);

  @override
  int get hashCode => index;
}

Dart相关问答推荐

构造函数:将预处理的参数存储在传递给最终字段的辅助变量中

在 Flutter 中将 Widget 放在 ListView 之上

Card宽度与父级匹配

Asset图像作为Card背景,Flutter 中顶部有文本

flutter pub run build_runner 卡住了

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

Flutter热重新加载和热重启不工作

在 Dart 中,是否可以有一个 const 闭包映射?

如何在 Dart 中使用类型Aliases/Typedefs(也是非函数)?

Flutter中图像纵横比的变化

如何在命令行上创建和运行Dart元素

如何在Flatter dart中使用相同的元素初始化列表?

Flatter BLoC-如何将参数传递给事件?

用于名称和数字省道的正则表达式

Firebase 手机身份验证Flutter crash崩溃

Dart 会在多核环境中并行执行隔离吗?

带范围的dartswitch

用于 dartlang 的 REPL

如何使用 Dart 列出目录的内容?

是否可以在 Dart 中的一行上初始化列表?