Dart覆盖一元减号运算符

时间:2016-04-29 11:53:24

标签: dart dart-analyzer

根据语言规范(10.1.1运算符)我试图覆盖一些运算符。

当覆盖'减'和'一元减'运算符时,我得到一个分析器错误 - 我得不到:

'运算符“ - ”未在类缩进'

上定义

但在课程中我定义了它:

  Indentation operator -() {
    level--;
    return this;
  }

并且我像myInstance--;一样使用它并且实际上它确实有效,但是分析器仍然抱怨并且因为错误而无法提交代码'clean'。

我查了一个旧帖子(Why does overriding negate cause static warning in Dart),但我认为这与此无关。

欢迎任何建议。

1 个答案:

答案 0 :(得分:3)

--xx -= 1相同。要使用它,您必须定义operator -(p)(不是operator -()

Indentation operator -(n) => new Indentation(level - n);