【发布时间】:2013-11-07 18:00:47
【问题描述】:
是否可以为集合/可迭代类型重载 index[] 语法?例如,我正在编写一个围绕标准List<T> 的SortedList<T> 类。我只想将排序列表中的用法直接传递给底层列表对象。我以为我在 dart 语言之旅中读到了这个,但现在找不到了。
【问题讨论】:
是否可以为集合/可迭代类型重载 index[] 语法?例如,我正在编写一个围绕标准List<T> 的SortedList<T> 类。我只想将排序列表中的用法直接传递给底层列表对象。我以为我在 dart 语言之旅中读到了这个,但现在找不到了。
【问题讨论】:
Dart 编辑器似乎很满意:
operator [](int i) => list[i]; // get
operator []=(int i, int value) => _list[i] = value; // set
在DartPad试试吧
【讨论】:
是的,您可以覆盖 运算符。像这样:
T operator [](int index) => items[index];
但你不能在 dart 中重载任何东西。因为 Dart 不支持运算符或函数重载。这意味着您的类不能有两个名称相同但参数不同的函数。
【讨论】: