我正在阅读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)