Dart 语言扩展方法
Posted
技术标签:
【中文标题】Dart 语言扩展方法【英文标题】:Dart Language Extension Method 【发布时间】:2021-10-09 07:36:20 【问题描述】:我正在阅读dart官方文档中的扩展方法,并到达了document的底部。这里,文档提到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]; print(-list);
【参考方案1】:
这意味着您实际上可以将其用作列表中的运算符。例如:
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]
【讨论】:
谢谢@TmKVU 这很简单:-D。我太傻了;-)+(List<T> t)
和 *(List<T> t)
怎么样?
我将它们添加到我的答案中以上是关于Dart 语言扩展方法的主要内容,如果未能解决你的问题,请参考以下文章