Dart 运算符重载,详细介绍

简介: Dart 运算符重载,详细介绍Dart 支持运算符重载,它允许我们重载内置的运算符以执行自定义操作。在 Dart 中,我们可以通过实现一些特定的方法来重载运算符。

Dart 运算符重载,详细介绍

Dart 支持运算符重载,它允许我们重载内置的运算符以执行自定义操作。在 Dart 中,我们可以通过实现一些特定的方法来重载运算符。

下面是一些常用的运算符和它们对应的 Dart 方法:


+ : operator +(Object other)

`` : operator -(Object other)

`` : operator *(Object other)

/ : operator /(Object other)

% : operator %(Object other)

< : operator <(Object other)

> : operator >(Object other)

<= : operator <=(Object other)

>= : operator >=(Object other)

== : operator ==(Object other)

[] : operator [](index)

[]= : operator []=(index, value)

~ : operator ~()

| : operator |(Object other)

& : operator &(Object other)

^ : operator ^(Object other)

<< : operator <<(Object other)

>> : operator >>(Object other)

注意事项:


运算符重载方法必须是实例方法(instance method)。

重载方法必须是公有的(public)。

某些运算符是不能被重载的,例如 ?. 和 ..。


通过重载运算符,我们可以使我们的自定义类更加灵活和易于使用。例如,我们可以定义一个名为 Vector 的类来表示二维向量,然后重载 + 运算符,以便我们可以轻松地对两个向量执行向量加法操作。

class Vector {
  int x, y;
  Vector(this.x, this.y);
  Vector operator +(Vector other) {
    return Vector(x + other.x, y + other.y);
  }
}
void main() {
  Vector v1 = Vector(2, 3);
  Vector v2 = Vector(4, 5);
  Vector result = v1 + v2;
  print(result.x); // 输出:6
  print(result.y); // 输出:8
}

以上是 Dart 运算符重载的简要介绍,希望能对你有所帮助!

相关文章
|
7天前
|
存储 Dart 安全
Dart 变量
Dart 中的变量声明与初始化支持类型推断和显式声明。`var` 用于类型推断,如 `var name = Bob`;也可显式指定类型,如 `String name = Bob`。Dart 强制执行空安全,防止空解引用错误,并引入可空类型(`String?`)和不可空类型(`String`)。未初始化的不可空变量必须在使用前赋值。`late` 修饰符用于延迟初始化,确保变量在首次使用时才被初始化。`final` 和 `const` 用于定义不可变变量,前者运行时确定,后者编译时确定。类型检查和转换通过 `is` 和 `as` 实现。
103 79
|
2天前
|
Dart 索引
Dart 运算符
Dart 支持多种运算符,涵盖算术、逻辑、位运算、赋值等。这些运算符按优先级从高到低排列,并具有不同的结合性。一元后缀和前缀运算符(如 `++`、`--`)、乘法运算符(如 `*`、`/`)、加法运算符(如 `+`、`-`)、移位运算符(如 `&lt;&lt;`、`&gt;&gt;`)等依次列出。此外,Dart 还支持条件表达式(如 `?:` 和 `??`)、级联表示法(如 `..` 和 `?..`)以及展开运算符(如 `...` 和 `...?`)。更多信息可参考 [Dart 中文开发文档](https://dart.wendang.dev/language/operators/)。
29 14
|
6月前
|
Dart 安全 编译器
Dart-理解空安全中的的操作符
Dart-理解空安全中的的操作符
69 2
|
8月前
|
Dart
Dart之类型转换
Dart之类型转换
|
9月前
|
Dart JavaScript 前端开发
dart语言中的常量与变量
dart语言中的常量与变量
76 0
|
Dart 数据安全/隐私保护
Dart 语言中的存取器
本文介绍 Dart 语言中存取器的用法。
113 0
|
Dart JavaScript 前端开发
dart 语言中的 常量 与 变量
本文介绍 dart 语言中的 常量 与 变量
100 0
|
Dart
Dart 之泛型
Dart 之泛型
89 0
Dart 之泛型
|
Dart
Dart之 初始化列表
Dart之 初始化列表
62 0
Dart之 初始化列表