Dart 覆盖一元减号运算符

Dart overriding unary minus operator

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

我在重写 'minus' 和 'unary minus' 运算符时遇到分析器错误 - 我没有得到:

'The operator "-" is not defined on class Indentation'

但是在class中我定义了它:

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

我像 myInstance--; 一样使用它,它确实有效,但分析器仍然抱怨,由于错误,我无法提交代码 'clean'。

我查找了一个旧线程 (Why does overriding negate cause static warning in Dart),但我认为它与此处无关。

欢迎任何建议。

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

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