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上使用它们作为扩展方法?

这意味着您实际上可以将它用作列表上的操作符。例如:

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)

最新更新