【问题标题】:dart, overloading [] operator?飞镖,重载 [] 运算符?
【发布时间】:2013-11-07 18:00:47
【问题描述】:

是否可以为集合/可迭代类型重载 index[] 语法?例如,我正在编写一个围绕标准List<T>SortedList<T> 类。我只想将排序列表中的用法直接传递给底层列表对象。我以为我在 dart 语言之旅中读到了这个,但现在找不到了。

【问题讨论】:

    标签: operator-overloading dart


    【解决方案1】:

    Dart 编辑器似乎很满意:

    operator [](int i) => list[i]; // get
    operator []=(int i, int value) => _list[i] = value; // set
    

    DartPad试试吧

    【讨论】:

      【解决方案2】:

      是的,您可以覆盖 运算符。像这样:

      T operator [](int index) => items[index];
      

      但你不能在 dart 中重载任何东西。因为 Dart 不支持运算符或函数重载。这意味着您的类不能有两个名称相同但参数不同的函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-10
        • 2022-10-23
        • 2019-10-24
        • 1970-01-01
        • 2020-03-03
        • 2021-02-27
        相关资源
        最近更新 更多