首页 > 解决方案 > Dart 语言扩展方法

问题描述

我正在阅读 dart 官方文档中的扩展方法,并到达了文档的底部。在这里,文档提到该行List<T> operator -() => reversed.toList();作为List<T>. 这是完整的代码。

extension MyFancyList<T> on List<T> {
  int get doubleLength => length * 2;
  List<T> operator -() => reversed.toList();
  List<List<T>> split(int at) => [sublist(0, at), sublist(at)];
}

是什么意思operator -()operator +(List<T> t)以及operator *(List<T> t)如何将它们用作 List 上的扩展方法?

标签: flutterdartextension-methods

解决方案


这意味着您实际上可以将其用作列表中的运算符。例如:

final list = [1,2,3,4,5];
print(-list);

打印 [5,4,3,2,1]

就个人而言,我不会实施这样的逆转。我认为对于其他开发人员来说这将是非常不清楚的,而该reversed方法非常清楚它的作用。但是,我知道这只是关于如何在扩展中定义运算符的示例。

operator +(List<T> t)并且operator *(List<T> t)在两个列表之间。例如:

final a = [1,2];
final b = [3,4];
print(a + b);

打印 [1,2,3,4]


推荐阅读