2016-04-29 21 views
1

Laut Sprachspezifikationen (10.1.1 Operatoren) versuche ich einige Operatoren zu überschreiben.Dart überschreiben unärer Minusoperator

Ich erhalte eine Fehleranalysegerät, wenn das Überschreiben der ‚Minus‘ und ‚einstellige minus‘ Betreiber - eine, die ich nicht bekommen:

‚Operator‚-‘wird auf Klasse Einrückungen nicht definiert‘

aber in der Klasse habe ich es definiert:

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

und ich verwende es wie myInstance--; und es tut wirklich Arbeit, aber immer noch der Analysator beschwert und ich kann nicht den Code ‚sauber‘, weil der Fehler vor.

Ich habe einen alten Thread (Why does overriding negate cause static warning in Dart) nachgeschlagen, aber ich denke, dass es hier nicht relevant ist.

Jede Beratung ist willkommen.

Antwort

3

--x ist das gleiche wie x -= 1. Um es zu verwenden, müssen Sie die operator -(p) (nicht operator -())

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