2016-04-29 16 views
1
私はいくつかの演算子を上書きしようとしている言語仕様(10.1.1オペレーター)を1として

ダートオーバーライド単項マイナス演算子

「マイナス」と「単項マイナス」演算子オーバーライドするとき、私はアナライザのエラーを取得する - 私は取得しない1: -

「『を』クラスのインデントに定義されていない演算子」を

が、クラスで私はそれを定義しています

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

と私はmyInstance--;のようにそれを使用し、それが実際に作業を行い、それでもアナライザは文句を言い、私はエラーが原因の「クリーン」のコードを提出することはできません。

古いスレッド(Why does overriding negate cause static warning in Dart)を検索しましたが、ここでは関係ありません。

アドバイスは大歓迎です。

答えて

3

--xは、x -= 1と同じです。それを使用するには、operator -(p)operator -()ではなく)を定義する必要があります。

Indentation operator -(n) => new Indentation(level - n); 
関連する問題