flutter - 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]
推荐阅读
- .net-core - 在 .NET Core Worker 服务中根据配置注册托管服务
- python - Altair 交互式图表:显示所有轴标签,而 transform_filter 仅获取部分数据
- java - 我哪里搞砸了?为什么我的方法返回 Infinity?
- excel - 使用 VBA 为散点图设置动画,但收到 Object_'Global' 的 'Range' 失败错误
- php - 如何使用 DomDocument 更改标签文本 - PHP
- python - Python不和谐机器人警告特定人
- php - 在php中执行数组push语句
- parameters - 如何在空手道中使用具有两个等号的参数?
- python - 将多个直方图绘制为网格
- javascript - 在输入时将光标移动到下一个元素跟踪 tabindex